<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一江春水向東流

    做一個(gè)有思想的人,期待與每一位熱愛思考的人交流,您的關(guān)注是對(duì)我最大的支持。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      44 隨筆 :: 139 文章 :: 81 評(píng)論 :: 0 Trackbacks

    PHP令我們驚喜的就是在圖形圖象處理方面要憂于ASP,用GD庫PHP就可以輕松的實(shí)現(xiàn)縮略圖。這一篇文章我們的目的就是用GD來生成縮略圖,PHP可以把縮略圖直接生成輸送到瀏覽器也可以以文件的形式把其存儲(chǔ)到硬盤當(dāng)中。

    ?

    在生成縮略圖的過程當(dāng)中我們需要用到GD庫當(dāng)中的幾個(gè)函數(shù):

    getimagesize(string filename [,array var])),取得圖像的信息,返回值是一人array,包括幾項(xiàng)信息$var[0]----返回圖像的width,$var[1]----返回height,[2]返回圖像文件的type,[4]返回的是與<img src="">當(dāng)中的wdith,height有關(guān)的width="",height=""信息。

    imageX(resource image)

    imageY(resource image)? 返回圖像的寬和高

    imagecopyresized(des img,src img,int des_x,int des_y,int src_x,int src_y,int des_w,int des_h,int src_w,int src_y)? 復(fù)制并截取區(qū)域圖像

    imagecreatetruecolor(int width,int height)? 創(chuàng)建一個(gè)真彩圖

    imagejpeg(resource image)

    下面就是Code:
    <?php
    # Constants
    define(IMAGE_BASE, '/var/www/html/mbailey/images');
    define(MAX_WIDTH, 150);
    define(MAX_HEIGHT, 150);

    # Get image location
    $image_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
    $image_path = IMAGE_BASE . "/$image_file";

    # Load image
    $img = null;
    $ext = strtolower(end(explode('.', $image_path)));
    if ($ext == 'jpg' || $ext == 'jpeg') {
    ??? $img = @imagecreatefromjpeg($image_path);
    } else if ($ext == 'png') {
    ??? $img = @imagecreatefrompng($image_path);
    # Only if your version of GD includes GIF support
    } else if ($ext == 'gif') {
    ??? $img = @imagecreatefrompng($image_path);
    }

    # If an image was successfully loaded, test the image for size
    if ($img) {

    ??? # Get image size and scale ratio
    ??? $width = imagesx($img);
    ??? $height = imagesy($img);
    ??? $scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);

    ??? # If the image is larger than the max shrink it
    ??? if ($scale < 1) {
    ??????? $new_width = floor($scale*$width);
    ??????? $new_height = floor($scale*$height);

    ??????? # Create a new temporary image
    ??????? $tmp_img = imagecreatetruecolor($new_width, $new_height);

    ??????? # Copy and resize old image into new image
    ??????? imagecopyresized($tmp_img, $img, 0, 0, 0, 0,
    ???????????????????????? $new_width, $new_height, $width, $height);
    ??????? imagedestroy($img);
    ??????? $img = $tmp_img;
    ??? }
    }

    # Create error image if necessary
    if (!$img) {
    ??? $img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
    ??? imagecolorallocate($img,0,0,0);
    ??? $c = imagecolorallocate($img,70,70,70);
    ??? imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2);
    ??? imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2);
    }

    # Display the image
    header("Content-type: image/jpeg");
    imagejpeg($img);
    ?>

    我們把上面的Code存儲(chǔ)為test.php,然后通過test.php?image name的形式來訪問,結(jié)果會(huì)讓你驚喜的,因?yàn)樵谶@里你看到了PHP的優(yōu)點(diǎn),它可以讓ASP相形見絀。

    上面的這段代碼當(dāng)中我們通過end(explode(".",$image_path)來取得文件的擴(kuò)展名,但是我感覺還是不理想。這樣是能夠取得文件的類型的,因?yàn)閑nd()函數(shù)會(huì)跳到本array的最后一個(gè)單元,但是如果我們采用getimagesize()會(huì)取得更為強(qiáng)大的專門針對(duì)于圖像文件的類型。

    本程序顯示的縮略圖是限制寬高都在150內(nèi),然后用min()函數(shù)來取得它們比值的最小值來計(jì)算縮略圖的寬和高,并且通過一系列的GD庫函數(shù)來取得相應(yīng)的信息,并且呈現(xiàn)給瀏覽器,當(dāng)然你也可以寫到你所使用的硬盤當(dāng)中。

    好了,這就是PHP的縮略圖功能,大家覺得有什么好的意見可以多多拍磚!

    posted on 2008-05-24 20:20 allic 閱讀(321) 評(píng)論(0)  編輯  收藏 所屬分類: PHP+MySQL開發(fā)
    主站蜘蛛池模板: 亚洲色偷偷色噜噜狠狠99网| 亚欧免费视频一区二区三区| 狠狠亚洲婷婷综合色香五月排名| 久久久久久夜精品精品免费啦 | 日本精品久久久久久久久免费| 亚洲视频在线观看视频| 国产亚洲色婷婷久久99精品| 成人亚洲网站www在线观看 | 亚洲熟妇久久精品| 亚洲av永久无码一区二区三区| 在线观看日本亚洲一区| 久久精品国产亚洲AV嫖农村妇女 | 亚洲男女性高爱潮网站| 国产亚洲综合网曝门系列| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲乱码一二三四区国产| 亚洲免费闲人蜜桃| 亚洲精品美女久久久久久久| 国产天堂亚洲精品| 国产成人1024精品免费| a级毛片免费在线观看| 最近2018中文字幕免费视频| 日韩精品无码区免费专区| 久久99精品视免费看| 91精品免费观看| 日本一道一区二区免费看| 免费a级毛片永久免费| 亚洲男人第一av网站| 四虎国产精品成人免费久久| 国产精品久久久久免费a∨| 免费一级毛片清高播放| 麻豆国产人免费人成免费视频| 好大好硬好爽免费视频| 国产人妖ts在线观看免费视频| 亚洲一区视频在线播放 | 亚洲丰满熟女一区二区v| 国产精品自拍亚洲| 亚洲大片免费观看| 亚洲AV无码一区二区三区在线观看 | 午夜免费福利视频| 99久久免费国产香蕉麻豆|