WebP - Mac终端命令
压缩工具
-
iSparta: http://isparta.github.io/index.html
-
腾讯智图: https://zhitu.isux.us/
技术文档
压缩测试
运用智图压缩:有损压缩(默认)
- 图片锐利度随压缩质量变化,在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 | 禁用所有汇编优化。 |