optiPNG用户手册 ver0.7.8

optiPNG用户手册 #

名称 #

OptiPNG −PNG图片优化程序

概要 #

optipng [−? | −h | −help]

optipng [选项...] 文件...

描述 #

OptiPNG 程序应尝试优化 PNG 文件,即在不丢失语义信息的情况下将其大小减小到最小。此外,该程序还应执行一系列辅助功能,如完整性检查、元数据恢复和像素图到 PNG 转换。

不保证优化尝试会成功。此程序无法优化的有效 PNG 文件通常保持不变;他们的规模不会增长。用户可以请求覆盖此默认行为。

文件 #

输入文件是以 PNG 格式(本机格式)或外部格式编码的光栅图像文件。当前支持的外部格式包括 GIF、BMP、PNM 和 TIFF。

OptiPNG 按如下方式处理命令行中给定的每个图像文件:

  • 如果图像为 PNG 格式:

尝试就地优化给定文件。如果优化成功,或者启用了选项 −force,则用其优化版本替换原始文件。如果启用了选项 −keep,则会备份原始文件。

  • 如果图像为外部格式:

创建给定文件的优化 PNG 版本。输出文件名由原始文件名和.png扩展名组成。

除非启用了选项 −clobber,否则不会覆盖现有文件。

选项 #

一般选项 #

  • -?,-h,–help

显示选项的完整摘要。

  • −backup, −keep

保留已修改文件的备份。

  • −clobber

覆盖现有的输出和备份文件。在此选项下,如果未启用选项 −backup,则覆盖文件的旧备份将被删除。

  • −dir 目录

输出文件存放目录

  • −fix

启用错误恢复。此选项对有效的输入文件没有影响。 该程序将花费合理的精力来恢复尽可能多的数据,而不会增加输出文件大小,但通常不能保证成功。 该程序可能会增加文件大小,例如,通过重建缺失的关键数据。 在此选项下,完整性应优先于文件大小。 如果不使用此选项,则无效的输入文件将保持不处理状态。

  • −force

强制写入新的输出文件。 此选项将覆盖程序不写入此类文件的决定,例如,当 PNG 输入经过数字签名(使用 dSIG)时,或者当 PNG 输出大于 PNG 输入时。

  • −log 文件

将消息记录到文件中。出于安全原因,file 必须具有扩展名 .log。 此选项已弃用,最终将被删除。使用 shell 重定向。

  • −out 文件

将输出文件写入文件。命令行必须只包含一个输入文件。

  • −preserve

在适用的情况下保留文件属性(时间戳、文件访问权限等)。

  • −quiet, −silent

在安静模式下运行。 如果启用了选项 −log ,则消息仍会写入日志文件。

  • −simulate

在模拟模式下运行:执行试验,但不创建输出文件。

  • −v 启用选项 −verbose 和 −version。
  • −verbose 在 verbose 模式下运行。
  • −version 显示版权、版本和构建信息。
  • −− 停止选项开关解析。

PNG编码和优化选项 #

  • −o 级别

选择优化级别。

优化级别 0 启用一组需要最少工作量的优化操作。那里不会更改图像属性(如位深度或颜色类型),也不会重新压缩现有 IDAT 数据流。

优化级别 1 支持单个 IDAT 压缩试用。选择的试验是 OptiPNG 认为它可能最有效的试验。

优化级别 2 和更高级别支持多个 IDAT 压缩试验;级别越高,效果约明显。

此选项的行为和默认值可能会因不同的程序版本而异。

使用选项 −h 可查看与特定版本相关的详细信息。

  • −f 过滤器

选择 PNG 增量筛选器。

filters 参数指定为范围集(例如 −f0−5),默认 filters 值取决于选项 −o 设置的优化级别。

过滤器值 0、1、2、3 和 4 表示静态过滤,对应于标准 PNG 过滤器代码(分别为 None、Left、Up、Average 和 Paeth)。filter 值 5 表示自适应过滤,其效果由 OptiPNG 使用的 libpng(3) 库定义。

  • −full 生成有关 IDAT 的完整报告 。此选项可能会减慢试用速度。
  • −i 类型 选择隔行扫描类型 (0−1)。

如果选择了隔行扫描类型 0,则输出图像应为非隔行扫描(即逐行扫描)。如果选择了隔行扫描类型 1,则应使用 Adam7 方法对输出图像进行隔行扫描。

默认情况下,输出应具有与输入相同的交错类型。

  • −nb 不要应用位深度优化。

  • −nc 不要应用颜色类型优化。

  • −np 不应用调色板优化。

  • −nx 不应用任何无损图像优化:启用选项 −nb、−nc 和 −np。

  • −nz 不要对 IDAT 数据流进行重新编码。 不需要重新编码的 IDAT 优化操作(例如 IDAT 块连接)仍然执行。 此选项仅对 PNG 输入文件有效。

  • -zc levels

选择 IDAT 压缩中使用的 zlib 压缩级别。 levels 参数可用范围(例如 −zc6−9),默认 levels 值取决于选项 −o 设置的优化级别。 此选项的效果由 OptiPNG 使用的 zlib(3) 库定义。

  • −zm levels

选择 IDAT 压缩中使用的 zlib 内存级别。 levels 参数可用范围(例如 −zm8−9),默认 levels 值取决于选项 −o 设置的优化级别。 此选项的效果由 OptiPNG 使用的 zlib(3) 库定义。

  • −zs strategies

选择 IDAT 压缩中使用的 zlib 压缩策略。 strategies 参数可用范围(例如 −zs0−3),默认 strategies 值取决于选项 −o 设置的优化级别。 此选项的效果由 OptiPNG 使用的 zlib(3) 库定义。

  • −zw size

选择用于 IDAT 压缩的 zlib 窗口大小(32k、16k、8k、4k、2k、1k、512、256)。 size 参数可以以字节(例如 16384)或千字节(例如 16k)为单位指定。默认大小值设置为最低窗口大小,该大小产生的 IDAT 输出与 值 32768。

此选项的效果由 OptiPNG 使用的 zlib(3) 库定义。

编辑选项 #

  • -snip

从多图像、动画或视频文件中剪切一个图像。 根据输入格式,这可能是第一个或最相关(例如最大)的图像。

  • −strip objects

从 PNG 文件中去除元数据对象。 PNG 元数据是存储在除 tRNS 之外的任何辅助块中的信息。 tRNS 表示 Alpha 通道,即使在渲染中忽略该通道,它仍然是 RGBA 颜色空间中的适当图像通道。 当前支持的唯一选项是 −strip all。

备注 #

选项可以按任何顺序出现(– 除外)、之前、之后或与文件名交替出现。选项名称不区分大小写,并且可以缩写为其最短的唯一前缀。

某些选项可能具有跟在选项名称后面的参数,用空格或等号分隔(’=’).如果 option 参数是数字或范围集,则可以省略分隔符。例如:

- out newfile.png 等同于 −out=newfile.png
−o3 等同于 −o 3 等同于 −o=3
−f0,3−5 等同于 −f 0,3−5 等同于 −f=0,3−5

范围参数是累积的;例如

−f0 −f3−5 等同于 −f0,3−5
−zs0 −zs1 −zs2−3 等同于 −zs0,1,2,3 等同于 −zs0−3

扩展说明 #

PNG 优化算法包括以下步骤:

  1. 减少图像的位深度、颜色类型和调色板。此步骤可能会减小未压缩图像的大小,从而间接减小压缩图像的大小(即输出 PNG 文件的大小)。
  2. 运行一套压缩方法和策略,并选择产生最小输出文件的压缩参数。
  3. 将所有 IDAT 内容存储到单个块中,从而消除重复的 IDAT 标头和 CRC 产生的开销。
  4. 在 IDAT toamininum 中设置不影响压缩率的 zlib 窗口大小,降低 PNG 解码器的内存需求。

并非需要执行上述所有步骤。该行为取决于实际的输入文件和用户选项。

  • 步骤 1 可以通过 no-reduce 选项 −nb、-nc、-np 和 −nx 进行自定义。
  • 步骤 2 可以通过 −o 选项进行自定义,也可以通过选项 −zc、−zm、−zs 和 −zw 进行微调。
  • 步骤 3为必须执行过程。
  • 步骤 4 仅在创建新的 IDAT 时执行,并且可以通过选项 −zw 进行微调。

通常预计极其详尽的搜索不会在压缩率方面产生显著的改进,并且仅建议高级用户使用。

示例 #

optipng file.png # 默认速度 
optipng -o5 file.png # 慢
optipng -o7 file.png # 很慢

BUGS #

无损图像缩减未完全实现。这不会影响输出文件的完整性。以下是缺失的部分:

  • 调色板减少仅部分实现。
  • 对于灰度图像,低于 8 的位深度减少尚未实现。

不支持对 IDAT 总大小超过 2GB 的图像进行编码。

TIFF 支持仅限于未压缩的 PNG 兼容(灰度、RGB 和 RGBA)图像。

元数据不是从外部图像格式导入的。

不支持管道、流、扩展文件属性或访问控制列表。

其他参考 #

ng(5), libpng(3), zlib(3), pngcrush(1), pngrewrite(1).

标准 #

OptiPNG 生成的文件符合 PNG-2003 标准:

Glenn Randers-Pehrson et al. Portable Network Graphics (PNG) Specification, Second Edition.

W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003 (E).

http://www.w3.org/TR/PNG/

作者 #

OptiPNG 由 Cosmin Truta 编写和维护。 本手册最初由 Nelson A. de Oliveira 为 Debian 项目撰写。它后来由 Cosmin Truta 更新,现在是 OptiPNG 发行版的一部分。