<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ā)
    主站蜘蛛池模板: 久久亚洲精品AB无码播放| 亚洲国产精品无码久久九九| 亚洲精品无码专区在线在线播放| 亚洲第一se情网站| 国产免费牲交视频| 国产亚洲人成在线播放| 国产高清在线精品免费软件| 亚洲日韩精品无码专区| 国产精品成人免费一区二区| 亚洲AV色吊丝无码| 午夜视频免费成人| 男女猛烈无遮掩视频免费软件 | 亚洲AV无码之日韩精品| 曰批全过程免费视频观看免费软件| 在线观看亚洲免费视频| 免费观看四虎精品成人| 亚洲最大AV网站在线观看| 91精品成人免费国产| 久久久久亚洲AV片无码| 免费v片在线观看视频网站| 色噜噜亚洲男人的天堂| 好吊妞在线成人免费| 成年网站免费入口在线观看| 国产精品亚洲片在线观看不卡 | 久久亚洲国产精品五月天| 亚洲成人在线免费观看| 亚洲欧洲日本在线观看| 亚洲AV无码成H人在线观看| 最近2019中文免费字幕在线观看| 亚洲美女视频网址| 日韩免费视频播放| 三年在线观看免费观看完整版中文| 亚洲AV无码成人网站久久精品大| 日本zzzzwww大片免费| 美女黄色免费网站| 老汉色老汉首页a亚洲| 在线观看免费国产视频| 久久国产免费观看精品| 国产精品高清视亚洲一区二区| 亚洲无码精品浪潮| 24小时在线免费视频|