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

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

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

    一江春水向東流

    做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

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

    ?

    在生成縮略圖的過程當中我們需要用到GD庫當中的幾個函數:

    getimagesize(string filename [,array var])),取得圖像的信息,返回值是一人array,包括幾項信息$var[0]----返回圖像的width,$var[1]----返回height,[2]返回圖像文件的type,[4]返回的是與<img src="">當中的wdith,height有關的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)? 復制并截取區域圖像

    imagecreatetruecolor(int width,int height)? 創建一個真彩圖

    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存儲為test.php,然后通過test.php?image name的形式來訪問,結果會讓你驚喜的,因為在這里你看到了PHP的優點,它可以讓ASP相形見絀。

    上面的這段代碼當中我們通過end(explode(".",$image_path)來取得文件的擴展名,但是我感覺還是不理想。這樣是能夠取得文件的類型的,因為end()函數會跳到本array的最后一個單元,但是如果我們采用getimagesize()會取得更為強大的專門針對于圖像文件的類型。

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

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

    posted on 2008-05-24 20:20 allic 閱讀(316) 評論(0)  編輯  收藏 所屬分類: PHP+MySQL開發
    主站蜘蛛池模板: 456亚洲人成影院在线观| 亚洲综合精品一二三区在线| 亚洲va久久久久| 国产在线观看免费观看不卡| 亚洲最大在线视频| 亚洲一级毛片免费看| 亚洲同性男gay网站在线观看| 91免费资源网站入口| 亚洲国产av玩弄放荡人妇| 日本19禁啪啪无遮挡免费动图| 亚洲精品无码成人| 啊灬啊灬别停啊灬用力啊免费看| 国产亚洲综合一区二区三区| 亚洲国产成人影院播放| 卡一卡二卡三在线入口免费| 亚洲免费综合色在线视频| 国产美女无遮挡免费网站| 四虎影视在线看免费观看| 国产AV无码专区亚洲A∨毛片| 无码囯产精品一区二区免费| 亚洲ts人妖网站| 国产在线98福利播放视频免费| 国产午夜亚洲精品不卡免下载| 国产亚洲精品无码拍拍拍色欲| 美女被免费网站91色| 久久亚洲熟女cc98cm| 日韩高清免费观看| 精品国产福利尤物免费| 亚洲国产理论片在线播放| 国产成人在线观看免费网站| 国产成人无码精品久久久久免费| 亚洲欧洲日韩不卡| 成人性生交大片免费看午夜a| 日韩大片免费观看视频播放| 亚洲图片一区二区| 国产午夜无码视频免费网站| 亚洲一卡2卡4卡5卡6卡残暴在线| 日韩高清免费观看| 丁香花在线视频观看免费| 中文字幕精品三区无码亚洲| 亚洲熟女少妇一区二区|