2013-05-19 80 views
1

我用下面的代碼圖像的任何格式保存到png保存JPG格式爲PNG增加大小

$crawl_outfile = 'webss_' . uniqid() . '.png'; 
imagepng(imagecreatefromstring(file_get_contents($src)),$crawl_outfile); 

而且它增加了290 KB的大小1.7 MB。 不明白原因。有什麼方法(參數)來獲得更小的圖像?

+1

請參閱http://stackoverflow.com/questions/3049724/php-imagepng-is-creating-inordinately-large-files。看看[docs](http://php.net/manual/en/function.imagepng.php),你可以傳遞一個更高的壓縮參數值(儘管注意到PNG是無損的,所以'compression' title是有點誤導)。 – keyboardP

+0

@keyboardP你可以有無損壓縮,只要想想.zip;)) – moonwave99

+2

@ moonwave99 - 抱歉,我的意思是'質量'。文檔中的參數將其稱爲「質量」,但因爲png是無損的,所以這有點誤導。不能編輯我原來的評論,但希望OP看到這一個:D – keyboardP

回答

4

JPEG是一種有損壓縮格式(圖像中的某些細節丟失),其中PNG不是。因此,PNG的文件大小會更大。

PNG在壓縮某些東西時非常有效,例如大面積的相同顏色。 JPEG在壓縮照片方面效果更好。

1

我不知道好這個,但也可以通過它PNG包含有關透明部分的信息文件引起的..所以它必須做大

因此,有無關,如果你想改變格式較小的文件大小

Here相同大小約爲PNG

這是關於對質量的文件大小信息。 PNG在處理大塊顏色方面比JPG更好

+3

alpha通道只是爲什麼PNG文件比相應的JPEG大的一個小原因。 – moonwave99

1

PNG代表便攜式網絡圖形。它精確地存儲像素,其壓縮技術最適用於大面積純色的像素圖和截圖。對於顏色在每個像素之間稍微改變的連續色調圖像(即照片),它不能非常壓縮它們。方便的OptiPNGPngCrush工具可以稍微減小PNG文件的大小,但簡單的答案是您永遠不會將PNG照片縮小到JPEG的大小。

JPEG代表聯合攝影專家組。它是專爲連續色調圖像和壓縮他們很好非常。另一方面,它的有損壓縮技術失去了被人們注意到的太細微的顏色細節,並且它嚴重對付with sharp edges

此外請注意,PNG支持JPEG不支持的透明度,調色板圖像和動畫,但JPEG具有更復雜的元數據支持以及(很少支持)無損模式。所以這兩種格式各有自己的怪癖。要最小化文件大小,您需要根據圖像的視覺特徵選擇格式。基本上,使用JPEG照片和PNG的一切。