技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營

贊助商

分類目錄

贊助商

最新文章

搜索

php分10個(gè)不同等級壓縮優(yōu)化圖片

作者:admin    時(shí)間:2012-5-18 23:35:46    瀏覽:

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

如下是php壓縮圖片程序

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

原圖體積是125k,現(xiàn)在我想看看在不同的等級壓縮下會(huì)得到什么樣的結(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

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

我們在優(yōu)化的時(shí)候,一般采用2等級比較合適,圖片沒有失真,但體積減少了30%,達(dá)到優(yōu)化的目的了。如果采用6、7、8、9等級壓縮的話,圖片有所失真,所以不宜采用這些等級進(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.

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

標(biāo)簽: image  
相關(guān)文章
    x
    • 站長推薦
    /* 左側(cè)顯示文章內(nèi)容目錄 */