Board logo

标题: [文件操作] 批处理如何使用cwebp批量转换图片文件? [打印本页]

作者: loveqianool    时间: 2011-11-1 23:47     标题: 批处理如何使用cwebp批量转换图片文件?

cwebp命令(英文):http://code.google.com/intl/zh-TW/speed/webp/docs/cwebp.html
大概就是这样
  1. cwebp -q 80 c:\test\source.jpg -o c:\save\output.webp
复制代码
但是一次只能转换一个文件.不支持通配符.
如何批量转换 test 目录下的 jpg 到 save 目录. 忽略 test 的子目录.
作者: cjiabing    时间: 2011-11-2 00:01

用FOR呗,
作者: sxw    时间: 2011-11-2 10:23

楼主可以翻译下该工具啊
作者: 小胖狐狸    时间: 2011-11-2 14:56

for /f

[系列教程]批处理for语句从入门到精通[20101225更新]
http://www.bathome.net/thread-2189-1-1.html
作者: awk    时间: 2011-11-2 23:59

回复 4# 小胖狐狸


用不着/f
  1. @echo off
  2. for %%a in (C:\test\*.jpg) do (
  3.     cwebp -q 80 %%a -o C:\save\%%~na.webp
  4. )
复制代码

作者: 小胖狐狸    时间: 2011-11-9 16:11

回复 5# awk


    收到 :)
作者: hlzj88    时间: 2012-11-24 13:07

本帖最后由 hlzj88 于 2012-11-24 14:57 编辑

版本有升级 看清楚for windows版本
http://code.google.com/p/webp/downloads/list

参数
WebP cwebp(译)
cwebp
- 名称
cwebp - 压缩图片文件到webp文件中
- 简介
cwebp [options] input_file -o output_file.webp
- 描述
该页介绍了cwebp命令。
cwebp压缩图片使用了WebP格式,输入的格式可以是PNG、JPEG、TIFF或者原Y'CbCr(wiki)的样本。
- 选项(options)
基本选项有:
-o  string
指定输出的WebP的文件名称,如果忽略,会执行cwebp压缩,但只报告统计数据。
-h  -help
小的使用总结
-H  -longhelp
所有可能选项的集合
-version
打印版本号并退出
-q  float
指定压缩系数,介于0-100之间。小的压缩系数产生低质量小文件,最好的压缩系数是100。默认值为75
-alpha_q  int
指定alpha压缩的压缩系数,介于0-100,alpha的无损压缩是压缩系数为100时的结果,而低的系数值是在有损压缩中使用。默认系数值为100。
-f  int
指定去块效应的滤波程度,介于0(无过滤)-100(最大化过滤)。值0会关闭过滤,高的值会增加过滤的程度。滤值越高,图片越平滑。典型的值在20-50。
-preset  string
指定一组预先定义的参数,以适应特定类型的源材料。可能的值有:default、photo、picture、drawing、icon、text。由于 -preset 会重写其他参数的值(除了-q),这个选项最好出现在参数的最前面。
-sns  int
指定空间噪声成型的振幅。空间噪声成型(简写为sns,wiki)指的是一系列的内置算法,有它们决定图片的
哪些区域应该使用相对较少的比特,还有哪里可以将这些位进行更好的转换。可能的范围为0(关闭算法)到100(最大的效果)。默认值为80。
-m  int
指定所用的压缩方法。此参数控制编码速度,而且压缩后的文件大小和质量之间进行权衡。可能的值范围为0-6,默认值为4。当值越高,编码器将花更多的时间检查其他编码的可能性,并决定的质量增加的大小。当值越低时,会加快较大文件的处理时间,但图片压缩质量较低。
-af
打开自动过滤器。打开自动筛选。该算法将花费更多的时间用来优化滤波强度达到一个良好的平衡的质量。
- 附加选项
更多高级选项如下:
-sharpness  int
指定滤波的锐度(如果使用的话)。范围在0(最大锐度)到7(最小锐度)。该算法将花费更多的时间来优化滤波强度达到一个良好的平衡的质量。
-strong
使用比默认(如果使用了-f选项)更强的滤波功能。该功能默认关闭。
-segments int
在使用的SNS算法分割时,更改分区的数量。段应该是在范围为1〜4。默认值是4。
-partition_limit int
通过限制一些宏块的比特的数量来降解质量。范围0(无降解,默认值)-100(全降解)。中等大小的图片,常用30-70。在VP8格式中,被称做控制区的限制为512k,并存储了以下信息:宏块是否可以跳过、所属的分段、能否被编码为4x4或16x16模式、以及用于每个子快的最后预测模式。对于一个非常大的图片,512k仅仅留出了每个16x16宏块的数位。最小绝对的宏块有4位。段和模式信息可以使用几乎所有这些4位(虽然是不太可能的情况下),对于大图片来说,这是一个非常棘手的问题。partition_limit参数控制着最昂贵的位模式(帧内4×4)将被使用的频率。这在512K的限制被到达时很有用,会显示以下消息:Error code: 6 (PARTITION0_OVERFLOW: Partition #0 is too big to fit 512k)。如果使用使用了该参数,且没有超过约束条件,则会使用更少的分段一次来减少每个宏块的头部信息位。参见 -segments 选项。
-size int
指定目标的大小(以字节为单位)、试图达到的压缩输出大小。压缩机会将局部编码尝试几遍不同的压缩,尽可能接近这一目标。
-psnr float
为压缩输出指定的PSNR(in dB),压缩机会将局部编码尝试几遍不同的压缩,尽可能接近这一目标。
-pass int
设置通过选项 -size 或者 -psnr 传递过来而采用二分法(选项 -size 或者 -psnr)过程中的最大次数。最大值为10。【have problem】
在使用选项-size和-psnr的二分法时设置一个最大的次数。
-crop x_position y_position width height
裁剪范围,从左上角的矩形顶点(坐标远点)开始计算,开始位置为坐标(x_position, y_position),裁剪大小为 宽为width、高为height,裁剪范围必须在源图片的矩形区域内。
-s width height
指定的输入文件的亮度平面尺寸。包括符合ITU-R BT.601建议的以4:2:0的线性格式的原始的Y'CbCr样例。
-map int
输出额外的ASCII的编码信息的映射。可能的映射值范围从1到6。这仅仅是为了帮助调试。
-pre int
指定一个预处理滤波器,此选项是一个占位符,目前没有任何效果。
-alpha_filter string
指定alpha平面的预测滤波方法。'none'、'fast'、'best',越来越复杂和缓慢。默认是'fast'。在内部实现上,alpha使用四种可能的预测(无,水平,垂直,梯度)进行过滤。 'fast'的模式将依次尝试每个模式,并挑选出尺寸较小的那个。'fast'模式将形成一个先验的猜测而没有测试所有的模式。
-alpha_method int
为alpha压缩指定算法:0 或者 1。算法0表示没有压缩,1 使用WebP无损压缩格式。默认值是1。
-alpha_cleanup
在完全透明的区域修改看不见的RGB,来完善可压缩性。默认是关闭此项功能的。
-noalpha
使用此选项将舍弃的alpha通道。
-lossless
无损压缩图片
-hint string
指定输入图像类型的值。可能的值包括:photo,picture,graph
-v
打印额外的信息(特别是编码时间)。
-print_psnr
计算并报告平均PSNR(Peak-Signal-To-Noise ratio).
-print_ssim
计算并报告平均SSIM(structural similarity metric)
-progress
报告编码的百分比
-quiet
不打印任何东西
-short
仅打印用于测试目的的简要信息(输出文件的大小和PSNR)。
举例
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 -strong -af -size 60000 picture.png -o picture.webp




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2