php程序開發中經常涉及到生成縮略圖,利用php生成縮略圖這個過程本身沒難度,但是你知道php能夠優化調節生成的縮略圖的質量嗎?也就是說php能夠控制生成縮略圖的清晰度以及生成后的縮略圖的體積。下面我們就來看看如何利用php優化我們壓縮后的圖片。
對于如何使用php生成縮略圖這里就不介紹了,大家可以參考本站下面這篇文章:PHP自動生成縮略圖函數的源碼示例
首先我們來看看用php壓縮圖片的程序代碼:
?php
header('Content-type: image/png');
$image=@imagecreatefrompng('//www.jb51.net/test.png');
imagepng($image,'test.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等級壓縮的話,圖片有所失真,而體積減少卻不明顯。所以不宜采用這些等級進行壓縮優化圖片。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
您可能感興趣的文章:- PHP靜態方法和靜態屬性及常量屬性的區別與介紹
- 簡單實用的PHP文本緩存類實例
- PHP設計模式之PHP迭代器模式講解
- PHP iconv()函數字符編碼轉換的問題講解
- PHP里的$_GET數組介紹
- PHP匿名函數(閉包函數)詳解
- PHP利用遞歸函數實現無限級分類的方法
- 用PHP的反射實現委托模式的講解
- 針對PHP開發安全問題的相關總結
- PHP如何防止XSS攻擊與XSS攻擊原理的講解