名称
cwebp - 将图片文件压缩为 WebP 文件
摘要
cwebp [options] input_file -o output_file.webp
说明
cwebp 使用 WebP 格式压缩图片。输入格式可以是
PNG、JPEG、TIFF、WebP 或原始 Y'CbCr 样本。
注意:不支持 PNG 和 WebP 动画文件。
选项
基本选项包括:
-o string- 指定输出 WebP 文件的名称。如果省略,
cwebp将执行 压缩,但只报告统计信息。 使用“-”作为输出名称将会将输出定向到“stdout”。 -- string- 明确指定输入文件。如果输入文件以“-”开头,此选项会很有用。此选项必须显示
last。之后的任何其他选项都会被忽略。 -h, -help- 简短的使用情况摘要。
-H, -longhelp- 所有可能选项的摘要。
-version- 输出版本号(格式为 major.minor.revision)并退出。
-lossless- 编码图片,不会造成任何损失。对于包含完全透明区域的图片,只有使用
-exact选项时,不可见的像素值 (R/G/B 或 Y/U/V) 才会保留。 -near_lossless int- 指定近乎无损图片预处理的级别。此选项会调整像素值以提高压缩率,但对视觉质量的影响微乎其微。它会自动触发无损压缩模式。范围为
0(最大预处理)到100(无预处理,默认值)。一般值约为60。请注意,-q 100有损 有时可能会带来更好的效果。 -q float指定 RGB 通道的压缩系数,介于
0和100之间。默认值为75。如果是有损压缩(默认),较小的系数会产生较小的 质量较低的文件使用值
100可实现最佳画质。对于无损压缩(由
-lossless选项指定), 较小的系数可以加快压缩速度,但生成的文件较大。 通过使用值100,可以实现最大压缩。-z int开启
lossless压缩模式,并指定级别(介于 0 到 9 之间),其中级别 0 表示最快,级别 9 表示最慢。与速度较慢的模式相比,快速模式生成的文件大小更大。建议采用-z 6作为默认值。 此选项实际上是质量和方法的一些预定义设置的快捷方式。如果随后使用选项-q或-m,它们将使此选项失效。-alpha_q int指定介于
0和100之间的 Alpha 压缩压缩系数。使用值100可实现对 alpha 的无损压缩,而较低的值会导致有损压缩。默认值为100。-preset string指定一组预定义参数,以适应特定类型的源材料。可能的值包括:
default、photo、picture、drawing、icon、text。由于
-preset会覆盖其他参数的值(-q除外),因此此选项应优先按参数顺序显示。-m int指定要使用的压缩方法。此参数用于控制 编码速度与压缩文件大小和质量之间的差距。 可能的值范围为
0到6。默认值为4。 较高时 那么编码器会花更多时间检查 编码可能性并决定质量增益。较小的值可以 但处理速度较快,但文件较大和 降低压缩质量。-crop x_position y_position width height将来源剪裁为左上角位于坐标处的矩形 (
x_position,y_position),尺寸为widthxheight。此剪裁 必须完全包含在源矩形内。注意:剪裁会在任何缩放之前应用。-resize width height将源大小调整为大小为
widthxheight的矩形。如果其中任一情况 (但不是两者)宽度或高度参数为0,则值将 保留宽高比值。注意:缩放是在应用时间之后 剪裁。-mt如有可能,请使用多线程进行编码。
-low_memory通过将四倍于压缩后压缩文件的大小 尺寸(通常)。这会减慢编码速度 在大小和失真方面稍有不同此标志仅适用于方法 3 及更高版本,默认处于关闭状态。请注意,如果不启用此标志,将会对比特流产生一些副作用:它会强制使用某些比特流功能,例如分区数量(强制设为
1)。请注意,使用此选项时,cwebp会输出比特流大小的更详细报告。
有损选项
这些选项仅在进行有损编码(默认 或不使用 alpha 值)。
-size int- 指定要尝试为压缩包覆盖的目标大小(以字节为单位)
输出。压缩器将进行多次部分编码,以尽可能接近此目标。如果同时使用
-size和-psnr,则-size值将优先。 -psnr float- 指定要尝试达到压缩输出的目标 PSNR(以 dB 为单位)。
压缩器将进行多次部分编码,以尽可能接近此目标。如果同时使用
-size和-psnr,则-size值将优先。 -pass int- 设置选项
-size或-psnr在二分法期间要使用的最大传递次数。最大值为10,默认值为1。如果选项 使用了-size或-psnr,但未指定-pass(默认值) /“6”卡券。如果指定了-pass,但未指定-size和-psnr,则将使用 40dB 的目标 PSNR。 -af- 开启自动过滤功能。此算法将花费更多时间进行优化 过滤强度以达到平衡的质量。
-jpeg_like- 更改了内部参数映射,以更好地匹配 JPEG 压缩的预期大小。此标志通常会生成
尺寸与其等效的 JPEG 类似(对于相同的
-q设置),但使用 减少视觉失真
高级选项:
-f int- 指定去块滤波器的强度,介于
0(不滤波)之间 和100(最大过滤)。值为0会关闭所有过滤。值越高,在解码图片后应用的滤除流程的强度就越大。值越高,图片看起来越流畅。典型值通常介于20到50之间。 -sharpness int- 指定滤镜的锐度(如果使用)。范围为
0(最锐利)到7(最不锐利)。默认值为0。 -strong- 使用强效过滤(如果由于
-f选项而使用过滤)。强力过滤功能默认处于开启状态。 -nostrong- 停用强效过滤(如果使用了
-f的过滤功能) 选项),并改用简单的过滤。 -sharp_yuv- 使用更准确、更清晰的 RGB 向 YUV 转换。请注意,此过程的速度比默认的“快速”RGB 转换为 YUV 慢。
-sns int- 指定空间噪声形状的振幅。空间噪声形状调整
(简称 sns)是指内置算法的常规集合
用于确定图片的哪个区域应该使用相对较少的位,
以及在哪里能更好地传输这些位可能的范围为
0(算法处于关闭状态)到100(最大效果)。默认值为50。 -segments int- 更改在 sns 算法分段期间要使用的分区数量。细分应介于
1到4之间。默认值为4。 除非使用-low_memory,否则此选项对方法 3 及更高版本没有影响。 -partition_limit int- 通过限制某些宏块使用的位数来降低画质。范围介于
0(无降级,默认值)和100(完全降级)之间。对于中等大的图片,有用的值通常为30-70左右。在 VP8 格式中,所谓的控制分区上限为 512k,用于存储以下信息:是否跳过宏块、它属于哪个分块、它是编码为内部 4x4 模式还是内部 16x16 模式,以及最后要为每个子块使用的预测模式。对于非常大的图片,512k 只会为每个 16x16 宏块留出几个位。绝对最小值为每个宏块 4 位。跳过、分段和模式信息可能会占用这 4 位中的几乎所有位(尽管这种情况不太可能),这对于非常大的图片来说会造成问题。partition_limit系数用于控制使用最耗位模式(4x4 内)的频率。如果达到 512k 的限制并显示以下消息,此操作会很有用:错误代码:6 (PARTITION0_OVERFLOW: Partition #0 is too big to fit 512k)。如果使用-partition_limit不足以满足 512k 的限制,则应使用较少的片段,以便为每个宏块节省更多标头位。请参阅-segments选项。请注意,-m和-q选项也会影响编码器的决策和达到此限制的能力。
日志记录选项
这些选项用于控制输出级别:
-v- 输出额外信息(特别是编码时间)。
-print_psnr- 计算并报告平均 PSNR(峰值信噪比)。
-print_ssim- 计算并报告平均 SSIM(结构相似性指标,如需了解详情,请参阅 https://en.wikipedia.org/wiki/SSIM)。
-print_lsim- 计算并报告局部相似性指标(相邻像素邻居之间最低误差之和)。
-progress- 以百分比报告编码进度。
-quiet- 不输出任何内容。
-short- 仅出于测试目的输出简要信息(输出文件大小和 PSNR)。
-map int- 输出编码信息的其他 ASCII 映射。可能的地图值范围为
1到6。这仅用于帮助调试。
其他选项
更多高级选项包括:
-s width height- 指定输入文件实际包含原始 Y'CbCr 样本
ITU-R BT.601 建议,采用 4:2:0 线性格式。亮度平面大小为
widthxheight。 -pre int- 指定一些预处理步骤。使用值
2将会触发 RGBA->YUVA 转换期间依赖于质量的伪随机抖动 (仅限有损压缩)。 -alpha_filter string- 为 Alpha 平面指定预测过滤方法。
none、fast或best之一,复杂性和速度依次递增。默认值为fast。在内部,系统使用四种可能的预测(无、水平、垂直、梯度)执行 Alpha 滤除。best模式会依次尝试每种模式,并从中选择 。fast模式只会尝试形成先验性猜测,而不会测试所有模式。 -alpha_method int- 指定用于 Alpha 压缩的算法:
0或1。算法0表示不压缩,1使用 WebP 无损格式进行压缩。 默认值为1。 -exact- 保留透明区域中的 RGB 值。默认为关闭 可压缩性。
-blend_alpha int- 此选项会使用
以十六进制形式指定为 0xrrggbb 的背景颜色。之后,Alpha 通道会重置为不透明值
255。 -noalpha- 使用此选项将舍弃 Alpha 通道。
-hint string- 指定有关输入图片类型的提示。可能的值包括:
photo、picture或graph。 -metadata string要从输入复制到输出的元数据(如果有)的逗号分隔列表。有效值:
all、none、exif、icc、xmp。默认值为none。请注意,每种输入格式可能并不支持所有组合。
-noasm停用所有汇编优化。
错误
请向问题跟踪器报告所有错误:https://issues.webmproject.org
欢迎提交补丁!如需开始贡献,请参阅此页面:https://www.webmproject.org/code/contribute/submitting-patches/
示例
cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png
作者
cwebp 是 libwebp 的一部分,由 WebP 团队编写。
最新的源代码树可从 https://chromium.googlesource.com/webm/libwebp/ 获取
本手册页面是为 Debian 项目编写的(其他人也可以使用)。