很多時候使用者上傳的圖片很大,直接返回原圖會非常佔用伺服器頻寬。這個時候我們就需要對圖片大小進行處理,那麼PHP如何?處理圖片大小呢?本文就來分享使用GD庫處理圖片大小的執行個體。
1.利用php的方法進行圖片尺寸修改和儲存
-----------------------------------
準備工作:1.需要原圖片的連結2.GD庫支援
-----------------------------------
假設原圖片連結:$url;
方法操作:
第一步: $arrimg = getimagesize($url);
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$arrimg :這個的形式是:
Array( [0] => 350 [1] => 318 [2] => 2 [3] => width="350" height="318" [bits] => 8 [channels] => 3 [mime] => image/jpeg)
說明:$arrimg[2]中的數字代表著不同圖片類型的數字索引查看:
返回結果說明
索引 0 給出的是映像寬度的像素值
索引 1 給出的是映像高度的像素值
索引 2 給出的是映像的類型,返回的是數字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order)
,9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
索引 3 給出的是一個寬度和高度的字串,可以直接用於 HTML 的 <image> 標籤
索引 bits 給出的是映像的每種顏色的位元,二進位格式
索引 channels 給出的是映像的通道值,RGB 映像預設是 3
索引 mime 給出的是映像的 MIME 資訊,此資訊可以用來在 HTTP Content-type 頭資訊中發送正確的資訊,如:
header("Content-type: image/jpeg");
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
第二步:根據寬:$arrimg[0],長:$arrimg [1]進行比例處理,把需要得到後的圖片大小尺寸按照比例弄出來
在這裡暫時設定需要得到圖片的大小尺寸為 :$newheight $newwidth
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
第三步:$thumb = imagecreatetruecolor($newwidth,$newheight);
說明:imagecreatetruecolor() 返回一個映像標識符,代表了一幅大小為 $newwidth和 $newheight的黑色映像
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
第四步: $source = imagecreatefromjpeg($url);
說明:imagecreatefromjpeg() 返回一映像標識符,代表了從給定的檔案名稱取得的映像
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
第五步 :ImageCopyResampled($thumb,$source,0,0,0,0,$newwidth,$newheight,$arrimg[0],$arrimg[1]);
imagecopyresampled -- 重採樣拷貝部分映像並調整大小。
++++++++++++++
第六步:
進行判斷什麼樣的類型然後進行儲存
switch($arrimg[2]){//支援jpgcase 2:imagejpeg($thumb,'test.jpg');break;//支援pngcase 3:imagejpeg($thumb,'test.jpg');break;default:echo "<script>alert('帶開發其他類型');</script>";break;}
相關推薦:
php實現擷取遠程圖片尺寸以及大小的高效方法
php圖片處理之圖片背景、畫布操作
php GD庫產生映像的幾個函數總結