2014-05-16 77 views
7

背景:我的PNG膨脹了些什麼?

我正在努力製作一堆儘可能小的PNG。我在玩PngOut,PngCrush和OptiPng等工具。

問題:

我跑過一個文件,是1434 KB的大小,但它只有230 X 230像素。當我在Paint.Net中打開文件並將其保存爲新文件時,新文件僅爲77 KB。這是一個驚人的1.325 MB的額外垃圾!

目標:

我想了解究竟可以腹脹的文件,也遇到它時,我怎麼能自動擺脫這種膨脹的,和我有麻煩完成任一目標。 OptiPng不會刪除元數據。

進展:

我發現exiftool似乎全能真棒,但它沒有顯示任何瘋狂的標籤。

RIOT可以在沒有額外數據的情況下生成圖像的新版本,但它並沒有給我任何有關膨脹的確切線索 - 絕對不是XMP信息或評論(我可以選擇的唯一元數據包括)。但是RIOT會自動強制刪除IPTC信息和EXIF配置文件 - 它可能是其中之一嗎?

想要的反饋

你如何通過程序或自動無損粉碎和PNG格式刪除元數據的想法(爲此事,其他類型的圖像)的讚賞。但是,我不想在沒有先了解它是什麼的情況下將信息丟棄到文件中。

更新

我發現Steel Bytes Jpeg & PNG Stripper,它也剝去該文件的元數據(並且具有一個命令行模式),產生我可以然後PNG優化一個84 KB文件,但是這仍然沒有按我無法理解我要刪除什麼,而且在繼續之前我覺得我需要了解。我不需要獲得許可來優化生產面向公衆的網站中使用的這些圖像,但我需要確信自己在做出這樣的改變之前所做的事情。

更新2

我沒有注意到,使用OptiPNG有一個選項,-strip all,這條元數據。這比Steel Bytes Stripper要好很多,因爲它有更多的備份處理原始文件的選項 - 保留備份,或將優化文件輸出到新位置。它也可以同時優化PNG的圖像數據,只需要一個工具而不是兩個。

附錄

這裏是exiftool -a -G [file.png]顯示:

[ExifTool]  ExifTool Version Number   : 9.60 
[File]   File Name      : file.png 
[File]   Directory      : . 
[File]   File Size      : 1446 kB 
[File]   File Modification Date/Time  : 2014:03:31 16:37:20-07:00 
[File]   File Access Date/Time   : 2014:05:15 15:47:53-07:00 
[File]   File Creation Date/Time   : 2014:05:15 15:47:53-07:00 
[File]   File Permissions    : rw-rw-rw- 
[File]   File Type      : PNG 
[File]   MIME Type      : image/png 
[PNG]   Image Width      : 230 
[PNG]   Image Height     : 230 
[PNG]   Bit Depth      : 8 
[PNG]   Color Type      : RGB with Alpha 
[PNG]   Compression      : Deflate/Inflate 
[PNG]   Filter       : Adaptive 
[PNG]   Interlace      : Noninterlaced 
[PNG]   Significant Bits    : 8 8 8 8 
[PNG]   Pixels Per Unit X    : 2834 
[PNG]   Pixels Per Unit Y    : 2834 
[PNG]   Pixel Units      : Meters 
[PNG]   Creation Time     : 3/31/14 
[PNG]   Software      : Adobe Fireworks CS6 
[XMP]   XMP Toolkit      : Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 
[XMP]   Creator Tool     : Adobe Fireworks CS6 (Macintosh) 
[XMP]   Create Date      : 2012:10:24 19:01:30Z 
[XMP]   Modify Date      : 2014:03:31 23:34:45Z 
[XMP]   Format       : image/png 
[Composite]  Image Size      : 230x230 
+0

你可以擴展你的「沒有瘋狂的標籤」? 230×230×4 = 206.6Kb,即使是最差的*可以想像的*壓縮也不能擴大。 'pngcheck'應該是一個好工具。最有可能的候選人:單個大型顏色配置文件('gAma','cHRM'或'iCCP')。 – usr2564301

+0

@Jongware查看附錄 - 這是exiftool爲文件中的元數據標籤提供的完整輸出。我會看看pngcheck。謝謝! – ErikE

+0

「Exif」只是PNG元數據中的一小部分 - 對於可能需要它的可理解格式的軟件來說,這是一種「總結」。 'pngcheck'會暴露你PNG的原始內容。實際上*只需*非常少的數據塊*。 – usr2564301

回答

3

您的230x230像素圖片的原始像素數據不應該是很大的,即便不好或者根本沒有壓縮。因此,所有這些數據都必須駐留在非標準的PNG數據塊中。

使用pngcheck找出文件中的塊是什麼,它們有多大。然後使用W3C PNG Specifications找出特定塊的使用情況,並且如有必要,請在別處查找「私人數據」塊。

除非你正在處理一個嚴重非標塊,所有那些name表示並不「需要」,是去除可能的候選人。

+0

查看我添加到問題的結果部分。 – ErikE

+0

...或不。我必須以某種方式未能提交。我會盡快更新這個問題。 – ErikE