总结
目前我正在重新整理我的笔记和博客,其中涉及的任务之一是将所有现有图像(JPEG
和 PNG
)批量转换为 WebP
。
为了做到这一点,需要将 find
、xargs
和 cwebp
串联在一起使用。
为了节省您一些时间,以下是我使用的命令:
|
|
简单来说,这几条命令就是将当前目录下的所有图片文件递归地转换为 webp
。
以 find *
开始,将结果通过管道传输到 xargs *
,在调用 cwebp
进行转换。
如果您感兴趣,请往下看看命令是如何组成的。
寻找 find
|
|
.
表示在当前目录中开始搜索
-iname
表示只搜索特定格式的图片
-print0
表示用空字符终止每个文件名,方便后续使用
|
|
上面命令返回了以 .jpg
或 .jpeg
结尾的文件,为此使用了两个 -iname
选项,在多选项中,记得添加 -o
,这里是代表 or
的意思。
xargs 命令
xargs
是一个强大的命令行工具,它可以从标准输入(stdin)读取数据,并将这些数据转换为特定命令的参数列表。
这是完整的 xargs
命令:
|
|
需要理解上面这一条语句,首先先看看这个例子:
|
|
-0
表示输入以空字符结束(这与 find
的 -print0
选项一起使用)
-n 1 -P 0
告诉 xargs
尽可能多的使用进程
-I '{}'
此选项命名输入,启用后就可以执行后面的操作
echo '{}'
这是 xargs
为每个提供的输入运行的命令
cwebp
JPEG 转 WebP
|
|
使用这个命令将 Jpeg
转换为 WebPs
-short
打印简短的摘要(可以使用静默模式 -quiet
代替)
-q
指定质量,100 为最高
'{}'
这是 find
提供的输入
-o '{}'.webp
输出文件名
PNG 转 WebP
|
|
这与上面的 cwebp
命令几乎完全相同。除了:
-alpha_q 100
将 Alpha
透明度通道设置为 100
-m 6
将图片压缩增加到 6
(默认为 4
)