PHP壓縮圖片功能的介紹
php程序開(kāi)發(fā)中經(jīng)常涉及到生成縮略圖,利用php生成縮略圖這個(gè)過(guò)程本身沒(méi)難度,但是你知道php能夠優(yōu)化調(diào)節(jié)生成的縮略圖的質(zhì)量嗎?也就是說(shuō)php能夠控制生成縮略圖的清晰度以及生成后的縮略圖的體積。下面我們就來(lái)看看如何利用php優(yōu)化我們壓縮后的圖片。
對(duì)于如何使用php生成縮略圖這里就不介紹了,大家可以參考本站下面這篇文章:PHP自動(dòng)生成縮略圖函數(shù)的源碼示例
首先我們來(lái)看看用php壓縮圖片的程序代碼:
<?php header('Content-type: image/png'); $image=@imagecreatefrompng('//www.dbjr.com.cn/test.png'); imagepng($image,'test.png',0); //注意后面那個(gè)數(shù)字0,這里即壓縮等級(jí),參數(shù)范圍:0-9*/ imagedestroy($image); ?>
以上 imagepng 函數(shù)的第三個(gè)參數(shù)即是本篇文章所要分析的,這個(gè)參數(shù)的意思是生成圖片的質(zhì)量等級(jí)。這里可以分10個(gè)等級(jí)(0-9),0等級(jí)時(shí)即無(wú)壓縮,圖片不會(huì)失真,圖片最清晰,但圖片的體積也最大,隨著壓縮等級(jí)數(shù)字不斷增大,圖片會(huì)變得越來(lái)越不清晰,但壓縮后圖片的體積可以減少到原來(lái)的50%,壓縮比還是挺大的。
下面看一個(gè)具體的例子吧,現(xiàn)在一個(gè)原圖體積是125k,下面是經(jīng)過(guò)不同壓縮等級(jí)后的測(cè)試結(jié)果:
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
注意以上當(dāng)壓縮等級(jí)為0的時(shí)候,體積比原圖還大的原因是原始圖片其實(shí)是經(jīng)過(guò)了輕微的壓縮,而0等級(jí)的壓縮就是一點(diǎn)壓縮都沒(méi)有,所以它的體積會(huì)大于原始圖片。
根據(jù)以上結(jié)論和實(shí)際測(cè)試結(jié)果,得出的結(jié)論是在優(yōu)化圖片的時(shí)候,一般采用2等級(jí)比較合適,圖片沒(méi)有失真,但體積減少了30%,達(dá)到優(yōu)化的目的了。如果采用6、7、8、9等級(jí)壓縮的話,圖片有所失真,而體積減少卻不明顯。所以不宜采用這些等級(jí)進(jìn)行壓縮優(yōu)化圖片。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹
- 簡(jiǎn)單實(shí)用的PHP文本緩存類實(shí)例
- PHP設(shè)計(jì)模式之PHP迭代器模式講解
- PHP iconv()函數(shù)字符編碼轉(zhuǎn)換的問(wèn)題講解
- PHP里的$_GET數(shù)組介紹
- PHP匿名函數(shù)(閉包函數(shù))詳解
- PHP利用遞歸函數(shù)實(shí)現(xiàn)無(wú)限級(jí)分類的方法
- 用PHP的反射實(shí)現(xiàn)委托模式的講解
- 針對(duì)PHP開(kāi)發(fā)安全問(wèn)題的相關(guān)總結(jié)
- PHP如何防止XSS攻擊與XSS攻擊原理的講解
相關(guān)文章
js+php實(shí)現(xiàn)靜態(tài)頁(yè)面實(shí)時(shí)調(diào)用用戶登陸狀態(tài)的方法
這篇文章主要介紹了js+php實(shí)現(xiàn)靜態(tài)頁(yè)面實(shí)時(shí)調(diào)用用戶登陸狀態(tài)的方法,采用在靜態(tài)頁(yè)面中使用js調(diào)用php頁(yè)面從而實(shí)現(xiàn)用戶登錄狀態(tài)的實(shí)時(shí)調(diào)用功能,需要的朋友可以參考下2015-01-01解析array splice的移除數(shù)組中指定鍵的值,返回一個(gè)新的數(shù)組
array_splice這個(gè)數(shù)組函數(shù)在w3school的解釋是把數(shù)組中的一部分去掉并用其它值取代。所以我在做數(shù)組移除的時(shí)候沒(méi)有考慮到用這個(gè)函數(shù),或者因?yàn)閺膩?lái)沒(méi)有用過(guò)2013-07-07The specified CGI application misbehaved by not returning a
The specified CGI application misbehaved by not returning a complete set of HTTP headers2011-03-03php提示Failed to write session data錯(cuò)誤的解決方法
這篇文章主要介紹了php提示Failed to write session data錯(cuò)誤的解決方法,較為詳細(xì)的分析了session寫(xiě)入錯(cuò)誤的原因與解決方法,并附帶說(shuō)明了php的工作機(jī)制,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12PHP樹(shù)形結(jié)構(gòu)tree類用法示例
這篇文章主要介紹了PHP樹(shù)形結(jié)構(gòu)tree類用法,結(jié)合實(shí)例形式分析了php無(wú)限分類樹(shù)tree.class.php的定義及使用相關(guān)操作技巧,需要的朋友可以參考下2019-02-02