跳到主要内容

Linux cwebp 命令 - 将图像转换为 WebP 格式

介绍

cwebp(英文全拼:compress WebP)命令用于将 JPEG、PNG 或 TIFF 格式的图片编码成 WebP 格式。

WebP 格式是谷歌在 2010 年推出的新一代图片格式,旨在加快图片加载速度。图片压缩体积大约只有 JPEG 的2/3,能节省大量的服务器宽带资源和数据空间。WebP 既支持有损压缩也支持无损压缩,相较编码 JPEG 文件,编码同样质量的 WebP 文件需要占用更多的计算资源。

cwebp 命令由 webp 软件包提供,在 Debian/Ubuntu 系统上可以使用如下命令进行安装。

sudo apt install webp

相关命令:dwebp

语法

cwebp [options] input_file -o output_file.webp

选项

  • -h, -help :显示帮助信息(简单版)。
  • -H, -longhelp :显示帮助信息(详细版)。
  • -q <float> :品质参数(0:最小,100:最优),缺省值为 75。
  • -alpha_q <int> :为 alpha 压缩指定一个 0 到 100 的数值。alpha 无损压缩用 100,小于 100 将产生有损压缩。默认值100。
  • -preset <string> :指定一组预定义的值用来区分不同的文件材料。可能的值有 default、photo、picture、drawing、icon、text。由于 -preset 覆盖其他参数的值(除了 -q),这个值最好出现在所有参数最前面。
  • -z <int> :切换无损压缩模式级别从 0 到 9,0 最快,9 最慢。速度越快文件越大。比较好的默认值是 6。这个参数是一个预定义压缩质量快捷阐述。如果参数 -q 或者 -m 被随后用到,这个 -z 就无效了。
  • -m <int> :制定压缩模式。这个参数控制了编码的速度,压缩文件大小,质量。值范围为 0 到 6,默认 4。值越大,花费时间越大用来检查额外的编码能力和质量。小的值会产生快的压缩速度,大的文件和低的压缩质量。
  • -segments <int> :更改在 sns 算法分段期间要使用的分区数。段的范围应为 1 到 4,默认值为 4。除非使用 -low_memory,否则此选项对方法 3 及更高版本无效。
  • -size <int> :为输出文件指定一个目标大小(单位 bytes),压缩器将多次压缩以接近这个目标。如果 -size 和 -psnr 同时使用, 那么 -size 优先。
  • -psnr <float> :指定目标 PSNR(以 dB 为单位)以尝试达到压缩输出。 压缩程序将通过几次部分编码,以便尽可能接近此目标。 如果同时使用 -size 和 -psnr,则以 -size 值为准。
  • -s <int> <int> :YUV 的输入大小(宽 x 高)。
  • -sns <int> :指定空间噪声整形的幅度(0:off,100:最大),缺省值为 50。
  • -f <int> :指定解过滤器的强度(0:off,100:最大),缺省值为 60。
  • -sharpness <int> :指定过滤的清晰度(0:最清晰,7:最不清晰),缺省值为 0。
  • -strong :使用强过滤替代简单过滤(默认开启强过滤)。
  • -nostrong :禁用强过滤,使用简单过滤。
  • -sharp_yuv :如果需要,请使用更准确,更清晰的 RGB-> YUV 转换。 请注意,此过程比默认的“快速” RGB-> YUV 转换要慢。
  • -partition_limit <int> :限制质量以适应第一个分区的 512k 限制(0:无降级,100:完全降级),缺省值为 0。
  • -pass <int> :设置选项 -size 或 -psnr 程序执行期间要使用的最大通过次数。参数范围 1 到 10,默认值为 1。如果使用选项 -size 或 -psnr,但未指定 -pass,则将使用默认值 6。
  • -crop <x> <y> <w> <h> :从左边顶部的点开始 (x_position, y_position) 计算来裁切图片。裁切区域必须在原文件图片区域内。
  • -resize <w> <h> :调整源文件的宽高。如果任意一个宽或者高的参数为 0,那么将按比例计算。
  • -mt :如果支持,采用多线程编码。
  • -low_memory :通过节省四倍于压缩大小(通常)来减少有损编码的内存使用。 这将使编码变慢,并且输出的大小和失真会稍有不同。
  • -map <int> :输出额外的 ASCII 映射编码信息。 可能的映射值范围是1到6。这仅是为了帮助调试。
  • -print_psnr :计算并报告平均 PSNR(峰值信噪比)。
  • -print_ssim :计算并报告平均 SSIM(结构相似性指标)。
  • -print_lsim :计算并报告局部相似性度量(像素邻居中的最低误差之和)。
  • -d <file.pgm> :转储压缩的输出(PGM 文件)。
  • -alpha_method <int> :指定用于 alpha 压缩的算法:0 或 1。算法 0 表示无压缩,1 使用 WebP 无损格式进行压缩。 预设值为 1。
  • -alpha_filter <string> :指定 Alpha 平面的预测过滤方法。有效值:none、fast、best,默认为 fast。
  • -exact :将 RGB 值保留在透明区域中。默认为关闭,以帮助压缩。
  • -blend_alpha <hex> :将颜色与以十六进制写入的 RGB 值表示的背景颜色混合,例如 0xc0e0d0 代表红色=0xc0,绿色=0xe0,蓝色=0xd0。
  • -noalpha :使用此选项将丢弃 Alpha 通道。
  • -lossless :无损编码图片处理。意味着整个图片,包含透明区域、看不见的像素值(R/G/B 或 Y/U/V)都会被保存。
  • -near_lossless <int> :指定无损压缩级别对图片处理预处理(0..100=off),缺省值为 100。这个参数用来调整像素帮助图片的可压缩性,但是尽可能减少图片可见区域质量。
  • -hint <string> :指定有关输入图像类型的提示。可能的值为:photo、picture 或 graph。
  • -metadata <string> :逗号分隔的元数据列表,如果存在,则从输入复制到输出。有效值:all、none、exif、icc、xmp。默认为 none。
  • -short :仅出于测试目的打印简要信息(输出文件大小和 PSNR)。
  • -quiet :安静模式(不打印任何东西)。
  • -version :打印版本信息并退出。
  • -noasm :禁用所有装配优化。
  • -v :打印更多信息(特别是编码时间)。
  • -progress :报告编码进度(百分比)。

示例

cwebp -q 80 image.png -o image.webp