如何用PHP改變圖片的尺寸_PHP教程

來源:互聯網
上載者:User
改變圖片的尺寸是一個很常見的功能需求,下面開始研究下關於PHP改變圖片尺寸的方法。先介紹一個自己寫的函數。

 

imagecopyresampled

imagecopyresampled -- 重採樣拷貝部分映像並調整大小。

int imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresampled() 將一幅映像中的一塊正方形地區拷貝到另一個映像中,平滑地插入像素值,因此,尤其是,減小了映像的大小而仍然保持了極大的清晰度。dst_im 和 src_im 分別是靶心圖表像和源映像的標識符。如果源和目標的寬度和高度不同,則會進行相應的映像收縮和展開。座標指的是左上方。本函數可用來在同一幅圖內部拷貝(如果 dst_im 和 src_im 相同的話)地區,但如果地區交迭的話則結果不可預知。

注: 因為調色盤映像限制(255+1 種顏色)有個問題。重採樣或過濾映像通常需要多於 255 種顏色,計算新的被重採樣的像素及其顏色時採用了一種近似值。對調色盤映像嘗試分配一個新顏色時,如果失敗我們選擇了計算結果最接近(理論上)的顏色。這並不總是視覺上最接近的顏色。這可能會產生怪異的結果,例如空白(或者視覺上是空白)的映像。要跳過這個問題,請使用真彩色映像作為靶心圖表像,例如用 imagecreatetruecolor() 建立的。

注: imagecopyresampled() 需要 GD 2.0.l 或更高版本。

一個簡單的樣本:

 

樣本2:

 $ratio_orig) {   $width = $height*$ratio_orig;} else {   $height = $width/$ratio_orig;}// Resample$image_p = imagecreatetruecolor($width, $height);$image = imagecreatefromjpeg($filename);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);// Outputimagejpeg($image_p, null, 100);?>

有兩種改變映像大小的方法:

  • ImageCopyResized() 函數在所有GD版本中有效,但其縮放映像的演算法比較粗糙。
  • ImageCopyResamples(),其像素插值演算法得到的映像邊緣比較平滑。(但該函數的速度比 ImageCopyResized() 慢)。

兩個函數的參數是一樣的,如下:

imageCopyResampled(dest,src,dy,dx,sx,sy,dw,dh,sw,sh);imageCopyResized(dest,src,dy,dx,sx,sy,dw,dh,sw,sh);

例子:


http://www.bkjia.com/PHPjc/752586.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/752586.htmlTechArticle改變圖片的尺寸是一個很常見的功能需求,下面開始研究下關於PHP改變圖片尺寸的方法。先介紹一個自己寫的函數。 ?php$imgsrc = "http://www....

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.