php gd等比例縮放壓縮圖片函數(shù)

字號:


    本文實例為大家分享了php gd等比例縮放壓縮圖片函數(shù),供大家參考,具體內容如下
    <?php
      /**
       * desription 判斷是否gif動畫
       * @param sting $image_file圖片路徑
       * @return boolean t 是 f 否
       */
      function check_gifcartoon($image_file){
        $fp = fopen($image_file,'rb');
        $image_head = fread($fp,1024);
        fclose($fp);
        return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;
      }
      /**
      * desription 壓縮圖片
      * @param sting $imgsrc 圖片路徑
      * @param string $imgdst 壓縮后保存路徑
      */
      function compressed_image($imgsrc,$imgdst){
        list($width,$height,$type)=getimagesize($imgsrc);
        $new_width = ($width>600?600:$width)*0.9;
        $new_height =($height>600?600:$height)*0.9;
        switch($type){
          case 1:
            $giftype=check_gifcartoon($imgsrc);
            if($giftype){
              header('Content-Type:image/gif');
              $image_wp=imagecreatetruecolor($new_width, $new_height);
              $image = imagecreatefromgif($imgsrc);
              imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
              //75代表的是質量、壓縮圖片容量大小
              imagejpeg($image_wp, $imgdst,75);
              imagedestroy($image_wp);
            }
            break;
          case 2:
            header('Content-Type:image/jpeg');
            $image_wp=imagecreatetruecolor($new_width, $new_height);
            $image = imagecreatefromjpeg($imgsrc);
            imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
            //75代表的是質量、壓縮圖片容量大小
            imagejpeg($image_wp, $imgdst,75);
            imagedestroy($image_wp);
            break;
          case 3:
            header('Content-Type:image/png');
            $image_wp=imagecreatetruecolor($new_width, $new_height);
            $image = imagecreatefrompng($imgsrc);
            imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
            //75代表的是質量、壓縮圖片容量大小
            imagejpeg($image_wp, $imgdst,75);
            imagedestroy($image_wp);
            break;
        }
      }
    php and gd 函數(shù)參考表
    gd_info 取得當前安裝的 GD 庫的信息
    getimagesize 取得圖像大小
    getimagesizefromstring Get the size of an image from a string
    image_type_to_extension 取得圖像類型的文件后綴
    image_type_to_mime_type 取得 getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的圖像類型的 MIME 類型
    image2wbmp 以 WBMP 格式將圖像輸出到瀏覽器或文件
    imageaffine Return an image containing the affine tramsformed src image, using an optional clipping area
    imageaffinematrixconcat Concat two matrices (as in doing many ops in one go)
    imageaffinematrixget Return an image containing the affine tramsformed src image, using an optional clipping area
    imagealphablending 設定圖像的混色模式
    imageantialias 是否使用抗鋸齒(antialias)功能
    imagearc 畫橢圓弧
    imagechar 水平地畫一個字符
    imagecharup 垂直地畫一個字符
    imagecolorallocate 為一幅圖像分配顏色
    imagecolorallocatealpha 為一幅圖像分配顏色 + alpha
    imagecolorat 取得某像素的顏色索引值
    imagecolorclosest 取得與指定的顏色最接近的顏色的索引值
    imagecolorclosestalpha 取得與指定的顏色加透明度最接近的顏色
    imagecolorclosesthwb 取得與給定顏色最接近的色度的黑白色的索引
    imagecolordeallocate 取消圖像顏色的分配
    imagecolorexact 取得指定顏色的索引值
    imagecolorexactalpha 取得指定的顏色加透明度的索引值
    imagecolormatch 使一個圖像中調色板版本的顏色與真彩色版本更能匹配
    imagecolorresolve 取得指定顏色的索引值或有可能得到的最接近的替代值
    imagecolorresolvealpha 取得指定顏色 + alpha 的索引值或有可能得到的最接近的替代值
    imagecolorset 給指定調色板索引設定顏色
    imagecolorsforindex 取得某索引的顏色
    imagecolorstotal 取得一幅圖像的調色板中顏色的數(shù)目
    imagecolortransparent 將某個顏色定義為透明色
    imageconvolution 用系數(shù) div 和 offset 申請一個 3x3 的卷積矩陣
    imagecopy 拷貝圖像的一部分
    imagecopymerge 拷貝并合并圖像的一部分
    imagecopymergegray 用灰度拷貝并合并圖像的一部分
    imagecopyresampled 重采樣拷貝部分圖像并調整大小
    imagecopyresized 拷貝部分圖像并調整大小
    imagecreate 新建一個基于調色板的圖像
    imagecreatefromgd2 從 GD2 文件或 URL 新建一圖像
    imagecreatefromgd2part 從給定的 GD2 文件或 URL 中的部分新建一圖像
    imagecreatefromgd 從 GD 文件或 URL 新建一圖像
    imagecreatefromgif 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatefromjpeg 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatefrompng 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatefromstring 從字符串中的圖像流新建一圖像
    imagecreatefromwbmp 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatefromwebp 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatefromxbm 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatefromxpm 由文件或 URL 創(chuàng)建一個新圖象。
    imagecreatetruecolor 新建一個真彩色圖像
    imagecrop Crop an image using the given coordinates and size, x, y, width and height
    imagecropauto Crop an image automatically using one of the available modes
    imagedashedline 畫一虛線
    imagedestroy 銷毀一圖像
    imageellipse 畫一個橢圓
    imagefill 區(qū)域填充
    imagefilledarc 畫一橢圓弧且填充
    imagefilledellipse 畫一橢圓并填充
    imagefilledpolygon 畫一多邊形并填充
    imagefilledrectangle 畫一矩形并填充
    imagefilltoborder 區(qū)域填充到指定顏色的邊界為止
    imagefilter 對圖像使用過濾器
    imageflip Flips an image using a given mode
    imagefontheight 取得字體高度
    imagefontwidth 取得字體寬度
    imageftbbox 給出一個使用 FreeType 2 字體的文本框
    imagefttext 使用 FreeType 2 字體將文本寫入圖像
    imagegammacorrect 對 GD 圖像應用 gamma 修正
    imagegd2 將 GD2 圖像輸出到瀏覽器或文件
    imagegd 將 GD 圖像輸出到瀏覽器或文件
    imagegif 輸出圖象到瀏覽器或文件。
    imagegrabscreen Captures the whole screen
    imagegrabwindow Captures a window
    imageinterlace 激活或禁止隔行掃描
    imageistruecolor 檢查圖像是否為真彩色圖像
    imagejpeg 輸出圖象到瀏覽器或文件。
    imagelayereffect 設定 alpha 混色標志以使用綁定的 libgd 分層效果
    imageline 畫一條線段
    imageloadfont 載入一新字體
    imagepalettecopy 將調色板從一幅圖像拷貝到另一幅
    imagepalettetotruecolor Converts a palette based image to true color
    imagepng 以 PNG 格式將圖像輸出到瀏覽器或文件
    imagepolygon 畫一個多邊形
    imagepsbbox 給出一個使用 PostScript Type1 字體的文本方框
    imagepsencodefont 改變字體中的字符編碼矢量
    imagepsextendfont 擴充或精簡字體
    imagepsfreefont 釋放一個 PostScript Type 1 字體所占用的內存
    imagepsloadfont 從文件中加載一個 PostScript Type 1 字體
    imagepsslantfont 傾斜某字體
    imagepstext 用 PostScript Type1 字體把文本字符串畫在圖像上
    imagerectangle 畫一個矩形
    imagerotate 用給定角度旋轉圖像
    imagesavealpha 設置標記以在保存 PNG 圖像時保存完整的 alpha 通道信息(與單一透明色相反)
    imagescale Scale an image using the given new width and height
    imagesetbrush 設定畫線用的畫筆圖像
    imagesetinterpolation Set the interpolation method
    imagesetpixel 畫一個單一像素
    imagesetstyle 設定畫線的風格
    imagesetthickness 設定畫線的寬度
    imagesettile 設定用于填充的貼圖
    imagestring 水平地畫一行字符串
    imagestringup 垂直地畫一行字符串
    imagesx 取得圖像寬度
    imagesy 取得圖像高度
    imagetruecolortopalette 將真彩色圖像轉換為調色板圖像
    imagettfbbox 取得使用 TrueType 字體的文本的范圍
    imagettftext 用 TrueType 字體向圖像寫入文本
    imagetypes 返回當前 PHP 版本所支持的圖像類型
    imagewbmp 以 WBMP 格式將圖像輸出到瀏覽器或文件
    imagewebp Output an WebP image to browser or file
    imagexbm 將 XBM 圖像輸出到瀏覽器或文件
    iptcembed 將二進制 IPTC 數(shù)據(jù)嵌入到一幅 JPEG 圖像中
    iptcparse 將二進制 IPTC 塊解析為單個標記
    jpeg2wbmp 將 JPEG 圖像文件轉換為 WBMP 圖像文件
    png2wbmp 將 PNG 圖像文件轉換為 WBMP 圖像文件
    以上就是本文的全部內容,希望對大家學習PHP程序設計有所幫助。