2010-09-14 196 views

回答

6

JPG是一種有損壓縮做這樣imagejpeg($資源,$文件名,$質量) 。這意味着您可以使用「質量參數」來調整尺寸/質量比。

GIF是無損壓縮,您無法通過調整質量得到更好的壓縮。

要創建一個GIF圖像使用imagegif(...)
http://us.php.net/manual/en/function.imagegif.php

+0

我知道如何創建gif圖像,但我不知道你無法壓縮它。謝謝。 – EMC 2010-09-14 12:51:19

+0

gif格式壓縮數據,但不能通過調整質量使其變小。如果你喜歡我的回答,請用綠色的勾號接受。 – qbeuek 2010-09-14 13:20:10

5

照片與圖像肯定是有損耗的,你絕對可以壓縮他們 - 相當顯著。這裏是PHP代碼:

$img = imagecreatefromstring(file_get_contents($_FILES["my_field"]["tmp_name"])); 
imagetruecolortopalette($img, false, 16); // compress to 16 colors in gif palette (change 16 to anything between 1-256) 
imagegif($img, $destination_filename); // $destination_filename is the location on your server where you want to save the compressed gif file 

由於馬里奧,從這個鏈接,上面第一行:Convert JPG/GIF image to PNG in PHP?

很多人都自稱圖檔無損,這是不正確的。 GIF肯定會丟失數據。丟失發生在保存點,而不是在文件打開的位置,並且gif丟失的行爲與jpeg損失不同,這是人們感到困惑的地方。有一點理由也會說幾乎所有不是位圖的圖像類型確實是有損的,否則我們可能只是使用位圖。除了基本的理解之外,圖像壓縮並不是所有這些專家「博主」都在推廣的精確科學,程序員將會很好地深入研究數據格式和壓縮算法(雙關意圖)以及他們自己。

本文http://searchcio-midmarket.techtarget.com/definition/lossless-and-lossy-compression斷然和錯誤狀態「圖形交換文件(GIF)是提供無損壓縮在Web上使用的圖像格式。」這就像是說,「所有矩形都是正方形」。有些矩形肯定是正方形,但是,邏輯上,這個陳述是100%錯誤的。如果你有一個黑白圖像,你當然可以得到一個無損的gif圖像,但gif絕不是「無損」的。此外,以100%質量保存jpeg文件也是無損的,但可以創建比原始文件更大的文件。

作爲一個非常過分簡單化規則:用於高速傳輸,使用具有小調色板高對比度的圖像的GIF(如黑色筆記本的圖像上的白色表);在非常低的對比度圖像(如森林的圖像)上使用50%-70%之間的jpegs;並使用具有中等對比度或混合對比度圖像(例如您和您的朋友的圖像)的63%-85%質量的大調色板或jpegs的GIF。

LZW壓縮(對於Tiff文件)是驚人的,但請記住可以壓縮圖像,並最終生成一個除壓縮數據本身之外還大於原始圖像的翻譯字典。圖像壓縮非常複雜,沒有一個尺寸適合所有人,因此在討論圖像壓縮時要避免一攬子聲明。沒有像「正確」選項那樣的東西,只有更好的選擇。