名称
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
- 输出版本号(采用 main.minor.revision 格式)并退出。
-lossless
- 在不损失任何损失的情况下对图片进行编码。对于具有完全透明区域的图片,
仅当
-exact
选项。 -near_lossless int
- 指定近无损图像预处理的级别。此选项会
有助于提高压缩率,但对视觉元素的影响微乎其微
质量。它会自动触发无损压缩模式。
范围是
0
(最大预处理)到100
(不预处理, 默认值)。一般值约为60
。请注意,-q 100
有损 有时可能会带来更好的效果。 -q float
指定介于
0
和100
之间的 RGB 通道的压缩因数。默认值为75
。如果是有损压缩(默认),较小的系数会产生较小的 低质量文件。要实现最佳质量,请将
100
。对于无损压缩(由
-lossless
选项指定), 较小的系数可以加快压缩速度,但生成的文件较大。 通过使用值100
,可以实现最大压缩。-z int
开启
lossless
压缩模式,指定级别介于 0 之间 级别 0 表示速度最快,级别 9 表示最慢。快速模式 生成的文件会比速度慢的文件更大建议采用-z 6
作为默认值。 实际上,这个选项是一些预定义画质设置的快捷方式 和方法。如果随后使用选项-q
或-m
,它们将 会使此选项失效。-alpha_q int
指定介于
0
和 1 之间的 Alpha 压缩的压缩系数100
。Alpha 版的无损压缩使用100
值来实现, 而较小的值会产生有损压缩。默认值为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
),尺寸为width
xheight
。此剪裁 必须完全包含在源矩形内。注意:剪裁 在任何扩缩之前应用。-resize width height
将来源大小调整为大小为
width
xheight
的矩形。如果其中任一情况 (但不是两者)宽度或高度参数为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
。 此选项对方法 3 及更高版本没有任何影响,除非-low_memory
数据。 -partition_limit int
- 通过限制某些宏块使用的位数来降低质量。
范围为
0
(无降级,默认值)到100
(完全降级)。 对于中等大的图片,有用的值通常为30
-70
左右。在 VP8 格式,即所谓的 Control 分区,其上限为 512k, 用于存储以下信息:宏块是否 无论是编码为 Intra 4x4 还是 16x16 内模式,以及用于每个 id 序列的 子块对于非常大的图片,512K 每幅图片只能留出几位空间 16x16 宏块。每个宏块的绝对最小值为 4 位。跳过、 段和模式信息几乎占用了这 4 位(尽管 这种情况不太可能发生),这对于非常大的图片存在问题。通过partition_limit
系数控制最高位开销模式的频率 (4x4 内)。在达到 512k 上限时,此属性非常有用 系统随即会显示以下消息:错误代码:6 (PARTITION0_OVERFLOW:分区 0 太大,不适合 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 线性格式。通过
亮度平面的尺寸为
width
xheight
。 -pre int
- 指定一些预处理步骤。使用值
2
将会触发 RGBA->YUVA 转换期间依赖于质量的伪随机抖动 (仅限有损压缩)。 -alpha_filter string
- 为 Alpha 平面指定预测过滤方法。以下之一:
none
、fast
或best
,按复杂程度和速度缓慢程度递增的顺序排列。 默认值为fast
。在内部, 可能的预测(无、水平、垂直、梯度)。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 项目编写的(可能可供 其他)。