php最佳化壓縮的圖片

來源:互聯網
上載者:User

php程式開發中經常涉及到產生縮圖,利用php產生縮圖這個過程本身沒難度,但是你知道php能夠最佳化調節產生的縮圖的品質嗎?也就是說php能夠控制產生縮圖的清晰度以及產生後的縮圖的體積。下面我們就來看看如何利用php最佳化我們壓縮後的圖片。

對於如何使用php產生縮圖這裡就不介紹了,大家可以參考本站下面這篇文章:

php產生圖片縮圖的方法

首先我們來看看用php壓縮圖片的程式碼:

<?phpheader('Content-type: image/PNG');$image=@imagecreatefrompng('logo.png');imagepng($image,'logo.png',0); //注意後面那個數字0,這裡即壓縮等級,參數範圍:0-9*/imagedestroy($image);

以上 imagepng 函數的第三個參數即是本篇文章所要分析的,這個參數的意思是產生圖片的品質等級。這裡可以分10個等級(0-9),0等級時即無壓縮,圖片不會失真,圖片最清晰,但圖片的體積也最大,隨著壓縮等級數字不斷增大,圖片會變得越來越不清晰,但壓縮後圖片的體積可以減少到原來的50%,壓縮比還是挺大的。

下面看一個具體的例子吧,現在一個原圖體積是125k,下面是經過不同壓縮等級後的測試結果:

imagepng($img,null,0); --> Size = 225K
imagepng($img,null,1); --> Size = 85.9K
imagepng($img,null,2); --> Size = 83.7K
imagepng($img,null,3); --> Size = 80.9K
imagepng($img,null,4); --> Size = 74.6K
imagepng($img,null,5); --> Size = 73.8K
imagepng($img,null,6); --> Size = 73K
imagepng($img,null,7); --> Size = 72.4K
imagepng($img,null,8); --> Size = 71K
imagepng($img,null,9); --> Size = 70.6K

注意以上當壓縮等級為0的時候,體積比原圖還大的原因是原始圖片其實是經過了輕微的壓縮,而0等級的壓縮就是一點壓縮都沒有,所以它的體積會大於原始圖片。

根據以上結論和實際測試結果,作者得出的結論是在最佳化圖片的時候,一般採用2等級比較合適,圖片沒有失真,但體積減少了30%,達到最佳化的目的了。如果採用6、7、8、9等級壓縮的話,圖片有所失真,而體積減少卻不明顯。所以不宜採用這些等級進行壓縮最佳化圖片。



相關文章

聯繫我們

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