php中10個(gè)不同等級(jí)壓縮優(yōu)化圖片操作示例
本文實(shí)例分析了php中10個(gè)不同等級(jí)壓縮優(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ú)道理。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《php文件操作總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP+.htaccess實(shí)現(xiàn)全站靜態(tài)HTML文件GZIP壓縮傳輸(一)
PHP+.htaccess實(shí)現(xiàn)全站靜態(tài)HTML文件GZIP壓縮傳輸(一)...2007-02-02php使用fsockopen函數(shù)發(fā)送post,get請(qǐng)求獲取網(wǎng)頁(yè)內(nèi)容的方法
這篇文章主要介紹了php使用fsockopen函數(shù)發(fā)送post,get請(qǐng)求獲取網(wǎng)頁(yè)內(nèi)容的方法,是PHP關(guān)于socket編程的一個(gè)典型應(yīng)用,需要的朋友可以參考下2014-11-11php中目錄操作opendir()、readdir()及scandir()用法示例
這篇文章主要介紹了php中目錄操作opendir()、readdir()及scandir()用法,結(jié)合具體實(shí)例形式分析了PHP使用opendir()、readdir()及scandir()讀取目錄的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06PHP數(shù)據(jù)庫(kù)操作Helper類完整實(shí)例
這篇文章主要介紹了PHP數(shù)據(jù)庫(kù)操作Helper類,詳細(xì)分析了php操作mysql的連接、增刪改查及關(guān)閉連接等步驟,并給出了完整的mysql操作類Helper供大家參考,需要的朋友可以參考下2016-05-05php+mysql+jquery實(shí)現(xiàn)簡(jiǎn)易的檢索自動(dòng)補(bǔ)全提示功能
這篇文章主要介紹了php+mysql+jquery實(shí)現(xiàn)簡(jiǎn)易的檢索自動(dòng)補(bǔ)全提示功能,涉及基于jQuery的ajax數(shù)據(jù)庫(kù)查詢與事件動(dòng)態(tài)響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-04-04PHP圖像處理之imagecreate、imagedestroy函數(shù)介紹
這篇文章主要介紹了PHP圖像處理之imagecreate、imagedestroy函數(shù)介紹,imagecreate用于創(chuàng)建一個(gè)圖像,imagedestroy用于銷毀一個(gè)圖像,需要的朋友可以參考下2014-11-11php調(diào)用淘寶開(kāi)放API實(shí)現(xiàn)根據(jù)賣家昵稱獲取賣家店鋪ID的方法
這篇文章主要介紹了php調(diào)用淘寶開(kāi)放API實(shí)現(xiàn)根據(jù)賣家昵稱獲取賣家店鋪ID的方法,實(shí)例分析了php調(diào)用淘寶API查詢店鋪信息的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP實(shí)現(xiàn)提取多維數(shù)組指定一列的方法總結(jié)
這篇文章主要介紹了PHP實(shí)現(xiàn)提取多維數(shù)組指定一列的方法,結(jié)合實(shí)例形式總結(jié)分析了PHP針對(duì)多維數(shù)組的遍歷、轉(zhuǎn)換、提取等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12說(shuō)說(shuō)PHP的autoLoad自動(dòng)加載機(jī)制
php的autoload大致可以使用兩種方法:__autoload和spl方法。這兩種方法又各有不同的幾種使用方法2012-09-09