php中10個(gè)不同等級(jí)壓縮優(yōu)化圖片操作示例
本文實(shí)例分析了php中10個(gè)不同等級(jí)壓縮優(yōu)化圖片操作。分享給大家供大家參考,具體如下:
今天找到一個(gè)php寫的壓縮圖片程序,可以分10個(gè)等級(jí)(0-9)來壓縮,0等級(jí)時(shí)壓縮比率不是很大,圖片不會(huì)失真;隨著壓縮等級(jí)不斷增大,圖片會(huì)變得越來越不清晰,通常壓縮后圖片大小可以減少到原來的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í)比較合適,圖片沒有失真,但體積減少了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.
老外的解釋有沒有道理呢?他認(rèn)為原始圖片其實(shí)是經(jīng)過了輕微的壓縮,而0等級(jí)的壓縮就是一點(diǎn)壓縮都沒有,所以它的體積會(huì)大于原始圖片。我感覺此話不無道理。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《php文件操作總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php8擴(kuò)展arginfo生成工具及工具初體驗(yàn)介紹
這篇文章主要為大家介紹了php8的擴(kuò)展arginfo生成工具及工具初體驗(yàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
利用PHP實(shí)現(xiàn)圖片等比例放大和縮小的方法詳解
本篇文章是對(duì)利用PHP實(shí)現(xiàn)圖片等比例放大和縮小的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP pthreads v3下worker和pool的使用方法示例
這篇文章主要介紹了PHP pthreads v3下worker和pool的使用方法,結(jié)合實(shí)例形式分析了PHP pthreads v3下worker和pool的基本功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02
WordPress中轉(zhuǎn)義HTML與過濾鏈接的相關(guān)PHP函數(shù)使用解析
這篇文章主要介紹了WordPress中轉(zhuǎn)義Html與過濾鏈接的相關(guān)函數(shù)使用解析,分別為esc_html()函數(shù)和esc_url()函數(shù)的用法,需要的朋友可以參考下2015-12-12
php中將時(shí)間差轉(zhuǎn)換為字符串提示的實(shí)現(xiàn)代碼
通過傳入數(shù)據(jù)庫中存儲(chǔ)的文章發(fā)表時(shí)的UNIX時(shí)間戳,來轉(zhuǎn)化為例如 幾分鐘前,幾小時(shí)前,幾天前 這樣的提示。2011-08-08

