很多時候用戶上傳的圖片很大,直接回傳原圖會非常佔用伺服器頻寬。這時候我們就需要對圖片大小進行處理,那麼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 的
#索引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]){ //支持jpg case 2: imagejpeg($thumb,'test.jpg'); break; //支持png case 3: imagejpeg($thumb,'test.jpg'); break; default: echo "<script>alert('带开发其他类型');</script>"; break; }
相關推薦:
#以上是PHP處理圖片大小的實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!