當前位置:律師網大全 - 專利申請 - 查找php縮放處理函數

查找php縮放處理函數

在PHP網站的開發過程中,如果建立的網站涉及到大量的圖像處理,必然會涉及到圖像的上傳和縮放,保持圖像不失真和縮放。使用前需要下載安裝GD庫,支持PHP圖像處理。下面結合代碼解釋壹下PHP圖像縮放處理的具體思路。

函數resizeImage($im,$maxwidth,$maxheight,$name,$filetype)

{

$ pic _ width = imagesx($ im);

$ pic _ height = imagesy($ im);

if(($ maxwidth & amp;& amp$ pic _ width & gt$ maxwidth)($ max height & amp;& amp$ pic _ height & gt$maxheight))

{

if($ maxwidth & amp;& amp$ pic _ width & gt$maxwidth)

{

$ width ratio = $ maxwidth/$ pic _ width;

$ resizewidth _ tag = true

}

if($max height & amp;& amp$ pic _ height & gt$maxheight)

{

$ height ratio = $ max height/$ pic _ height;

$ resizeheight _ tag = true

}

if($ resize width _ tag & amp;& amp$resizeheight_tag)

{

if($ width ratio & lt;$heightratio)

$ ratio = $ widthratio

其他

$ ratio = $ heightratio

}

if($ resize width _ tag & amp;& amp!$resizeheight_tag)

$ ratio = $ widthratio

if($ resize height _ tag & amp;& amp!$resizewidth_tag)

$ ratio = $ heightratio

$ newwidth = $ pic _ width * $ ratio

$ newheight = $ pic _ height * $ ratio

if(function _ exists(" imagecopyresampled "))

{

$ newim = imagecreatetruecolor($ new width,$ new height);

imagecopyresampled($newim,$im,0,0,0,$newwidth,$newheight,$pic_width,$ pic _ height);

}

其他

{

$newim = imagecreate($newwidth,$ new height);

imagecopyrestized($ newim,$im,0,0,0,$newwidth,$newheight,$pic_width,$ pic _ height);

}

$name = $name。$ filetype

imagejpeg($newim,$ name);

image destroy($ newim);

}

其他

{

$name = $name。$ filetype

imagejpeg($im,$ name);

}

}

參數描述:

$im圖片對象,在應用該函數之前,需要使用imagecreatefromjpeg()讀取圖片對象。如果PHP環境支持PNG和GIF,也可以使用imagecreatefromgif()和ImageCreateFrompng();

$maxwidth定義生成的圖片的最大寬度(以像素為單位)。

$maxheight生成圖片的最大高度(單位:像素)

$name生成的圖片的名稱

$filetype(.jpg/。png/。gif)

代碼註釋:

第3~4行:讀取要縮放圖片的實際寬度和高度。

第8-26行:通過計算實際圖片的寬度和高度與要生成的圖片的寬度和高度之間的壓縮比,最終得出是按照寬度還是高度縮放圖片。目前的方案是根據寬度來縮放圖片。如果要根據高度縮放圖片,可以將第22行的語句改為$ widthratio & gt$heightratio

第28~31行:如果實際圖片的長度或寬度小於生成圖片的指定長度或寬度,則圖片會根據長度或寬度進行縮放。

第33-34行:計算最終縮放生成的圖像的長度和寬度。

第36~45行:根據最終生成的圖像的計算長度和寬度來改變圖像大小的方法有兩種:ImageCopyResized()函數在所有GD版本中都有效,但是它對圖像進行縮放的算法比較粗糙。ImageCopyResamples(),其像素插值算法得到的圖像邊緣更平滑,但該函數的速度比ImageCopyResized()慢。

第47~49行:最終生成處理後的圖像。如果需要生成GIF或PNG,需要將imagejpeg()函數改為imagegif()或imagepng()。

第51~56行:如果實際圖片的長度和寬度小於生成圖片的指定長度和寬度,圖片將保持原樣。同樣,如果需要生成GIF或PNG,需要將imagejpeg()函數改為imagegif()或imagepng()。

特殊說明:

GD庫在1.6.2版本之前支持GIF格式,但在1.6.2版本之後不支持GIF格式,因為GIF格式中LZW算法的使用涉及專利權。如果是WINDOWS環境,輸入PHP就可以了。INI文件找到extension=php_gd2.dll,去掉#並重啟APACHE。如果是Linux環境,想支持GIF、PNG、JPEG,需要下載安裝libpng、zlib、freetype字體。

好了,PHP圖像壓縮功能完成了,最後總結壹下整個處理思路:

通過計算實際圖片的長寬與生成圖片的指定長寬之間的縮放比例,根據實際需求計算出最終生成圖片的大小(圖片是按寬度縮放還是按高度縮放),然後利用PHP圖片處理函數對圖片進行處理,最後輸出圖片。

以上是關於PHP圖片處理中如何壓縮圖片並保持不失真的函數描述。

  • 上一篇:氫雲觀察:國內首份!廣東省氫燃料電池汽車標準體系正式發布
  • 下一篇:世界上第壹部智能手機是什麽?
  • copyright 2024律師網大全