跳到主要内容

WebP - Mac终端命令

压缩工具

技术文档

压缩测试

运用智图压缩:有损压缩(默认)

  • 图片锐利度随压缩质量变化,在70~90为可接受范围,不建议采用无损压缩,有时大小会比原图更大。
  • 不完美还原的情况下,如:苹果终端通过本地插件查看,色彩会变白,轻微发灰(通过Chrome查看图片则不会)。
  • 本地兼容度(不考虑网络传输,网络支持普遍较好):苹果终端因竞争或技术发展需要不支持webp格式,Adobe全家桶也不支持webp,需要转格式。
  • 白色略显灰,相比8位png图片,不会出现色彩缺少的颗粒感。但通过原图导出8位png,压缩后体积比原图png压缩体积要大5-10%左右,建议采用导出原图png或jpg进行压缩。

《样图为jpg格式》

前期必备

安装Hombrew,使用终端运行

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

用Homebrew安装webp,使用终端运行

$ brew install webp

png、jpg单图互转Webp

图片转webp :

$ cwebp -q 90 psb.jpeg -o output.webp

webp 转图片 :

$ dwebp output.webp -o test.png

图片批量转换为Webp

Windows:

> for /R . %I in (*.jpg) do ( cwebp.exe %I -o %~fnI.webp )

Linux / Mac:

$ for F in *.jpg; do cwebp $F -o `basename ${F%.jpg}`.webp; done

cwebp- Webp encoder tool

**描述:**将一个图像文件压缩成一个webp文件,输入文件可以是PNG,JPEG,TIFF,WebP等等。

**语法:**cwebp [options] input_file -o output_file.webp

例子

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 - options命令

cwebp-options命令描述
-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禁用所有汇编优化。

dwebp - Webp decoder tool

**描述:**将WebP文件解压成一个图像文件,类型可以是JPG,PNG,PAM,PPM,PGM等等。

**语法:**dwebp [options] input_file.webp例子

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

dwbp-options命令

dwbp-options命令描述
-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禁用所有汇编优化。