溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php中如何實(shí)現(xiàn)壓縮優(yōu)化圖片

發(fā)布時(shí)間:2021-09-02 10:22:29 來(lái)源:億速云 閱讀:116 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“php中如何實(shí)現(xiàn)壓縮優(yōu)化圖片”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php中如何實(shí)現(xiàn)壓縮優(yōu)化圖片”這篇文章吧。

具體如下:

找到一個(gè)php寫(xiě)的壓縮圖片程序,可以分10個(gè)等級(jí)(0-9)來(lái)壓縮,0等級(jí)時(shí)壓縮比率不是很大,圖片不會(huì)失真;隨著壓縮等級(jí)不斷增大,圖片會(huì)變得越來(lái)越不清晰,通常壓縮后圖片大小可以減少到原來(lái)的50%,壓縮比還是挺大的。

如下是php壓縮圖片程序

<?php
Header("Content-type: image/PNG");/*告訴IE瀏覽器你做的程序是張圖片*/
$image = @imagecreatefrompng ("banner.png"); 
imagepng ($image,null,0); /*壓縮等級(jí)0-9,壓縮后9最小,1最大*/
imagedestroy ($image);
?>

原圖體積是125k,現(xiàn)在我想看看在不同的等級(jí)壓縮下會(huì)得到什么樣的結(jié)果。如下為測(cè)試記錄。

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

我不明白的是為什么壓縮等級(jí)為0時(shí),它的體積反而變大了?

我們?cè)趦?yōu)化的時(shí)候,一般采用2等級(jí)比較合適,圖片沒(méi)有失真,但體積減少了30%,達(dá)到優(yōu)化的目的了。如果采用6、7、8、9等級(jí)壓縮的話,圖片有所失真,所以不宜采用這些等級(jí)進(jìn)行壓縮優(yōu)化圖片。

我們看看老外是怎么解釋這個(gè)現(xiàn)象的:

The result seems accurate since 0 means no compression

quality Compression level: from 0 (no compression) to 9.

It's normal for the 0ed file to be larger than the original (that can be slightly compressed to begin with). You need to understand file compression and PHP GD image constructor.

老外的解釋有沒(méi)有道理呢?他認(rèn)為原始圖片其實(shí)是經(jīng)過(guò)了輕微的壓縮,而0等級(jí)的壓縮就是一點(diǎn)壓縮都沒(méi)有,所以它的體積會(huì)大于原始圖片。我感覺(jué)此話不無(wú)道理。

以上是“php中如何實(shí)現(xiàn)壓縮優(yōu)化圖片”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI