WebP - Mac上使用cwebp,dwebp,webpmux工具

安装webp


webp工具

cwebp - Webp encoder tool

  • 描述

    • 将一个图像文件压缩成一个webp文件,输入文件可以是PNG,JPEG,TIFF,WebP等等。
  • 语法

    • cwebp [options] input_file -o output_file.webp
  • 选项

    • -o string
      • 指定输出文件名
    • -- string
      • 显式地指定输入文件。如果输入文件以'-'开头,这个选项是有用的。这个选项必须最后显示。之后的其他选项将被忽略
    • -h,-help
      • 简单的使用说明
    • -H,-longhelp
      • 详细的使用说明
    • -version
      • 版本号
    • -lossless
      • 对图像进行无损编码
    • -q float
      • 指定压缩因素,范围是0-100,默认为75
    • -z int
      • 在0-9之间切换无损耗压缩模式,0级最快,9级最慢。快速模式产生的文件大小比较慢的文件要大。默认是6。如果-q或者-m之后被使用,-z将无效。
    • -alpha_q int
      • 在0-100之间指定alpha压缩系数,默认100
    • -preset string
      • 指定一组默认的参数
    • -m int
      • 在0-6之间指定压缩方法。默认值为4。
    • -resize width height
      • 指定宽高
    • -crop x_position y_position width height
      • 裁剪[x_position, y_position, width, height]区域的图像,裁剪的区域大小必须在源图像大小中
    • -mt
      • 如果可能的话,使用多线程编码
    • -low_memory
      • 减少对有损编码的内存使用
    • -size int
      • 指定目标大小(单位bytes),并不是实际结果的大小,实际结果会通过选择编码的方式,尽可能接近这一目标。如果同时指定了-size和-psnr,-psnr将无效。
    • -psnr float
      • 指定目标的PSNR(in dB),并不是实际结果的大小,实际结果会通过选择编码的方式,尽可能接近这一目标。如果同时指定了-size和-psnr,-psnr将无效。
    • -pass int
      • 设置最大传递次数,范围为1-10,默认是1。如果-size或-psnr被使用,而-pass没有被使用,则默认-pass为6。
    • -af
      • 自动过滤,该算法将花费额外的时间来优化过滤强度,以达到平衡的质量。
    • -jpeg_like
      • 更改内部参数映射,以更好地匹配JPEG压缩的预期大小。这个标记通常会生成一个与它的JPEG等价的输出文件(用于相同的-q设置),但是不会产生更少的视觉失真。
    • -f int
      • 指定过滤器的强度,范围在0(不过滤)-100(最大过滤),值越高图像就越平滑,典型的值通常在20-50之间。
    • -sharpness int
      • 指定过滤的锐度,范围在0(强)-7(弱)之间,默认为0。
    • -strong
      • 使用强过滤,默认使用。
    • -nostrong
      • 禁用强过滤。
    • -sharp_yuv
      • 如果需要的话,使用更精确和更清晰的RGB-YUV转换。注意,这个过程比默认的“快速”RGB-YUV转换要慢。
    • -sns int
      • 指定空间噪声形成的振幅,范围为0(弱)-100(强),默认为50。
    • -segments int
      • 在sns算法的分割过程中,改变分区的数量。范围在1到4之间。默认值是4。
    • -partition_limit int
      • 通过限制某些宏块使用的比特数来降低质量。范围是0(没有降级,默认值)到100(完全降级)。
    • -v
      • 打印额外的信息。
    • -print_psnr
      • 计算和报告平均PSNR(峰值信噪比)。
    • -print_ssim
      • 计算和报告平均SSIM。
    • -print_lsim
      • 计算和报告本地相似性度量。
    • -progress
      • 报告编码进展百分比。
    • -quiet
      • 不打印任何东西。
    • -short
      • 只打印简短的信息。
    • -map int
      • 输出额外的编码信息的ascii-映射。可能的映射值范围从1到6。这只是为了帮助调试。
    • -s width height
      • 指定输入文件实际上是由Y'CbCr实例组成,遵循ITU-R BT.601建议。
    • -pre int
      • 指定一些预处理步骤。
    • -alpha_filter string
      • 指定阿尔法平面的预测过滤方法。
    • -alpha_method int
      • 指定用于alpha压缩的算法:0或1。0表示没有压缩,1使用WebP无损格式压缩。缺省值是1。
    • -exact
      • 在透明区域保留RGB值。默认是关闭的,以帮助压缩。
    • -blend_alpha int
      • 该选项将alpha通道(如果存在)与源文件中指定的背景颜色混合为0xrrggbb。然后,alpha通道被重置为不透明值255。
    • -noalpha
      • 使用该选项将丢弃alpha通道。
    • -hint string
      • 指定输入图像类型的提示。可能的值是:照片、图片或图表。
    • -metadata string
      • 将输入文件的员输入复制到输出文件,有效值为all, none, exif, icc, xmp。默认为none。
    • -noasm
      • 禁用所有汇编优化。
  • 例子

    • 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

dwebp - Webp decoder tool

  • 描述
    • 将WebP文件解压成一个图像文件,类型可以是JPG,PNG,PAM,PPM,PGM等等。
  • 语法
    • dwebp [options] input_file.webp
  • 选项
    • -h
      • 打印用法总结。
    • -version
      • 打印版本号。
    • -o string
      • 指定输出文件名
    • -- string
      • 显式地指定输入文件。如果输入文件以'-'开头,这个选项是有用的。这个选项必须最后显示。之后的其他选项将被忽略。
    • -bmp
      • 将输出格式更改为未压缩的BMP。
    • -tiff
      • 将输出格式更改为未压缩的TIFF。
    • -pam
      • 将输出格式更改为PAM(保留alpha)。
    • -ppm
      • 将输出格式更改为PPM(丢弃alpha)。
    • -pgm
      • 将输出格式更改为PGM。
    • -yuv
      • 将输出格式更改为原始YUV。
    • -nofancy
      • 不适用fancy。
    • -nofilter
      • 即使是位流需要,也不要使用循环过滤过程。这可能会在不兼容的输出上产生可见的块,但是这会使解码速度更快。
    • -dither strength
      • 指定0到100之间的抖动强度。
    • -nodither
      • 禁用所有抖动(默认)。
    • -mt
      • 如果可能的话,使用多线程进行解码。
    • -crop x_position y_position width height
      • 裁剪[x_position, y_position, width, height]区域的图像,裁剪的区域大小必须在源图像大小中。
    • -flip
      • 垂直解码图像。
    • -scale width height
      • 将解码的图像压缩到指定宽高。
    • -v
      • 打印额外的信息(特别是解码时间)。
    • -noasm
      • 禁用所有汇编优化。
  • 例子
    • dwebp picture.webp -o output.png
    • dwebp picture.webp -ppm -o output.ppm
    • dwebp -o output.ppm -- ---picture.webp
    • cat picture.webp | dwebp -o - -- - > output.ppm

webpmux - Webp muxing tool

  • 描述
    • 从静态的webp images创建动态的webp,或者从动态的webp提取静态的webp images。以及管理XMP/EXIF数据和ICC描述文件。
  • 语法
    • webpmux -get GET_OPTIONS INPUT -o OUTPUT
    • webpmux -set SET_OPTIONS INPUT -o OUTPUT
    • webpmux -strip STRIP_OPTIONS INPUT -o OUTPUT
    • webpmux -frame FRAME_OPTIONS [ -frame ... ] [ -loop LOOP_COUNT ][ -bgcolor BACKGROUND_COLOR ] -o OUTPUT
    • webpmux -duration DURATION OPTIONS [ -duration ... ] INPUT -o OUTPUT
    • webpmux -info INPUT
    • webpmux [-h|-help]
    • webpmux -version
  • 选项
    • -get 选项:GET_OPTIONS
      • icc : 获得 ICC profile
      • exif : 获得 EXIF metadata
      • xmp : 获得 XMP metadata
      • frame n : 从动态webp文件中获得第n帧(n=0代表最后一帧率)
    • -set 选项:SET_OPTIONS
      • icc file.icc : 设置 ICC profile
      • exif file.exif : 设置 EXIF metadata
      • xmp file.xmp : 设置 XMP metadata
    • -strip 选项:STRIP_OPTIONS
      • icc : Strip ICC profile
      • exif : Strip EXIF metadata
      • xmp : Strip XMP metadata
    • -duration 选项:DURATION_OPTIONS
      • 修改帧的特定间隔的持续时间。这个选项只对动画WebP有效,对单帧文件没有影响。从第一帧开始,0代表最后一帧。
      • duration[,start[,end]]
        • -duration d : 设置整个动画的持续时间
        • -duration d, f : 设置f帧到d帧的持续时间
        • -duration d, start, end : 设置开始帧到结束帧的持续时间
    • -frame 选项:FRAME_OPTIONS
      • 从静态的webp images创建一个动态的webp文件
      • file_i +di[+xi+yi[+mi[bi]]]
        • file_i : 第i张webp文件
        • xi,yi : 该帧图像的偏移量
        • di : 到下一帧开始的暂停时间
        • mi : 该帧图像的处理方式,0没有背景,1有背景
        • bi : 该帧图像的混合方式,+b有混合,-b没有混合
      • -loop n
        • 循环次数,0代表无限循环,有效范围是0-65535,默认为0
      • -bgcolor A,R,G,B
        • 画布的背景颜色
  • INPUT
    • webp格式的文件
  • OUTPUT (-o)
    • webp格式的文件
  • 例子
    • 添加ICC profile
      • webpmux -set icc image_profile.icc in.webp -o icc_container.webp
    • 获得ICC profile
      • webpmux -get icc icc_container.webp -o image_profile.icc
    • Strip ICC profile
      • webpmux -strip icc icc_container.webp -o without_icc.webp
    • 添加XMP metadata
      • webpmux -set xmp image_metadata.xmp in.webp -o xmp_container.webp
    • 获得XMP metadata
      • webpmux -get xmp xmp_container.webp -o image_metadata.xmp
    • Strip XMP metadata
      • webpmux -strip xmp xmp_container.webp -o without_xmp.webp
    • 添加EXIF metadata
    • webpmux -set exif image_metadata.exif in.webp -o exif_container.webp
    • 获得EXIF metadata
      • webpmux -get exif exif_container.webp -o image_metadata.exif
    • Strip EXIF metadata
      • webpmux -strip exif exif_container.webp -o without_exif.webp
    • 从三张静态的webp图片创建一张动态的webp动画
      • webpmux -frame 1.webp +100 -frame 2.webp +100+50+50
        -frame 3.webp +100+50+50+1+b -loop 10 -bgcolor 255,255,255,255
        -o anim_container.webp
    • 从动态的webp文件中获取第二帧
      • webpmux -get frame 2 anim_container.webp -o frame_2.webp

推荐阅读更多精彩内容