PHP處理圖片大小的執行個體分享

來源:互聯網
上載者:User
很多時候使用者上傳的圖片很大,直接返回原圖會非常佔用伺服器頻寬。這個時候我們就需要對圖片大小進行處理,那麼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庫產生映像的幾個函數總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.