背景:
我正在努力制作尽可能小的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,它确实从文件中删除了元数据(并且有一个命令行模式),产生了一个84 KB的文件然后我可以进行PNG优化,但这仍然无法帮助我理解什么我正在删除,我觉得我需要先了解才能继续.我不需要获得对生产面向公众的网站中使用的这些图像进行优化的许可,但我确实需要对进行此类更改之前所做的事情充满信心.
更新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
Run Code Online (Sandbox Code Playgroud)
即使压缩严重或根本没有压缩,230x230 像素图像的原始像素数据也不应该那么大。因此,所有这些数据必须驻留在非标准 PNG 数据块中。
用于pngcheck找出文件中有哪些块以及它们有多大。然后使用W3C PNG 规范来找出特定块的使用,并在必要时在其他地方查找“私有数据”块。
除非您正在处理严重非标准的块,否则所有名称表明不是“必需”的块都可能被删除。
| 归档时间: |
|
| 查看次数: |
989 次 |
| 最近记录: |