ImageMagick如何将选项传递给cwebp Linux
我在跑步ImageMagick如何将选项传递给cwebp Linux,imagemagick,imagemagick-convert,converters,webp,Imagemagick,Imagemagick Convert,Converters,Webp,我在跑步 $cat/etc/os发行版 PRETTY_NAME=“Debian GNU/Linux 9(扩展)” NAME=“Debian GNU/Linux” VERSION_ID=“9” VERSION=“9(拉伸)” ID=debian 我还运行ImageMagick 6.9 我想将PDF图像转换为WebP。顺便说一句,Linux上的ImageMagick无法转换为WebP,因此我sudo apt get install WebP,它安装cwebp cwebp允许指定-q参数,Image
$cat/etc/os发行版
PRETTY_NAME=“Debian GNU/Linux 9(扩展)”
NAME=“Debian GNU/Linux”
VERSION_ID=“9”
VERSION=“9(拉伸)”
ID=debian
我还运行ImageMagick 6.9
我想将PDF图像转换为WebP。顺便说一句,Linux上的ImageMagick无法转换为WebP,因此我sudo apt get install WebP
,它安装cwebp
cwebp
允许指定-q
参数,ImageMagick允许指定-quality
参数
当我运行$cwebp-q90 image.png-o image.webp
时,转换它大约需要8秒钟。如果我运行convert image.png-quality 90 image.webp
,转换它需要ImageMagick大约30秒。似乎-quality
参数没有传递到cwebp
。也可能是convert
尝试运行无损转换的情况,在cwebp
中,这是通过显式-无损
标志实现的
我为一个10 MB的测试png图像运行测试命令
我想用
convert
命令实现8秒的转换时间。我该怎么做呢?事实证明,委托是使用/etc/ImageMagick-6/delegates.xml
中的规则调用的
它列出了一系列关于如何在不同类型的图像之间转换的规则
对于我的例子,png
->webp
转换,我需要字符串:
而在这个文件中,我不知道-quality
参数值,似乎没有办法捕获它
但是,如果您希望保留cwebp
的-q
参数的值,您可以选择将-q$您的_值
硬编码到委托
标记内的命令
此解决方案仍然比直接调用
cwebp
慢,因为在调用委托之前,ImageMagick可能需要8秒钟 > P>我意识到你想要IMAGE,但是如果你能考虑替代的话,可以在命令行上快速地做PDF->WebP,而不需要任何配置。
例如,在我的2015笔记本电脑上,我看到:
$ time convert -density 600 r8.pdf[3] -quality 90 x.webp
real 0m36.699s
user 0m23.787s
sys 0m1.628s
$ vipsheader x.webp
x.webp: 9921x4961 uchar, 3 bands, srgb, webpload
我认为这与你所看到的时代大体一致
对于libvips,我看到:
$ time vips copy r8.pdf[dpi=600,page=3] x.webp[Q=90]
real 0m7.195s
user 0m6.861s
sys 0m0.505s
$ vipsheader x.webp
x.webp: 9921x4961 uchar, 3 bands, srgb, webpload
同样的结果,但在你8秒的时间预算内
您可以设置是否需要对压缩进行更多控制。要更改传递给webp的参数,您可以在delegates.xml文件中修改或创建一个条目。另见