2010-02-11 144 views
2

我正在使用標準PHP函數imagecopytruecolorimagejpeg 來重新調整並從標準HTML表單生成上傳的圖像。 如何使用PHP和JPEG減小文件大小

圖像以正確的大小顯示,但圖像文件大小相當高(例如540px * 350px = 250kb)

與使用JPEG高質量設置的Photoshop的Save for Web相比,相同的文件在大約60kb處出現,所以約小4倍。

有什麼我可以做的,以減少檔案大小?

+1

如何向我們展示實際的代碼? – 2010-02-11 13:50:22

回答

1

沒有圖片庫我有史以來最接近Photoshop的壓縮文件的效率。您可以嘗試使用ImageMagick(又稱Imagick)等其他庫,它可以以與您使用的默認內容相同的質量保存較小的文件,但請記住,在這個資源庫中,您永遠不會從這些庫中獲得60K圖像。

+0

我絕對同意這一點。 我做了一些測試,玩PHP imagejpeg函數的$ quality argumnet。結果令人遺憾的是,最大質量($ quality = 100)與Photoshop的質量9相當(從0到12之間的範圍內)。因此,如果Photoshop能夠以更好的質量保存,而imagejpeg不能! – 2010-02-11 14:40:27

+0

是的,Photoshop並沒有作弊,它確實「很好」。 Photoshop將具有更小的質量更好的圖像,沒有什麼比較,甚至沒有其他圖像應用程序。 – TravisO 2010-02-11 15:08:04

6

您可以在imageJPEG中設置$quality。從manual

布爾imagejpeg(資源$圖像[,字符串$文件名[摘要$質量]])

質量是可選的,並且範圍從0(最差質量,更小的文件)到100(最好的質量,最大的文件)。默認值是默認的IJG質量值(約75)。

以我的經驗來看,儘管如此,我們不可能遠低於70%。

可能想要試試你是否可以從其他圖像處理引擎如ImageMagick獲得更好的結果,如果你可以使用它。我經常覺得GD的JPG編碼器不在行首,但這只不過是目前的主觀印象。

+0

我同意,當你低於70時,壓縮開始變得明顯。 – TravisO 2010-02-11 13:53:30

+0

我不確定'imageMagick',但'imagejpeg'是可怕的,它會創建比原來更大的圖像,即使您降低質量... – WonderLand 2015-01-14 05:38:56

0

您可以更改質量設置(imagejpeg的第三個參數,請參閱the docs)。默認值只有75%,但應該已經很小了。

0

docs

布爾imagejpeg(資源$圖像[,字符串$文件名[摘要$質量])

實驗$質量