我能够为 imagemagick 安装 webp 支持。但是我缺少一些精确的命令。基本内容涵盖:
$im = new Imagick();
$im->pingImage($src);
$im->readImage($src);
$im->resizeImage($width,$height,Imagick::FILTER_CATROM , 1,TRUE );
$im->setImageFormat( "webp" );
$im->writeImage($dest);
Run Code Online (Sandbox Code Playgroud)
但我错过了许多微调选项,如此处的 imageMagick 命令行文档中所述:http : //www.imagemagick.org/script/webp.php
具体来说:
如何设置压缩质量?(我试过 setImageCompressionQuality 但它不起作用,即输出总是相同的大小)
如何设置“方法”(从 0 到 6)?
谢谢
编辑:我遵循下面@emcconville 的建议(谢谢!),无论是方法还是压缩都不起作用。所以我开始怀疑我对imagemagick的编译。我尝试使用命令行:
convert photo.jpg -resize 1170x1170\> -quality 50 photo.webp
Run Code Online (Sandbox Code Playgroud)
Wehn 更改 50 质量变量,结果文件始终大小相同。所以我的imagemagick一定有问题......
在Windows CMD批处理循环中,我想使用动态变量:list1,list2和list3,其中数字1-3是动态的(即:list&i),但我正在努力:
setlocal enabledelayedexpansion enableextensions
SET threads=3
set i=1
for /R %%x in (*.jpg) do ( call set LISTNAME=LIST!i! & SET LIST!i!=!LISTNAME! "%%x" & set /A i=!i!+1 & if !i! gtr %threads% (set i=1))
echo "first" %LIST1%
echo "second" %LIST2%
echo "third" %LIST3%
Run Code Online (Sandbox Code Playgroud)
我奋斗的确切地点是:
SET LIST!i!=!LISTNAME! "%%x"
Run Code Online (Sandbox Code Playgroud)
我想要的地方例如是:
SET LIST1=!LIST1! "%%x"
Run Code Online (Sandbox Code Playgroud)
但是listname只是转换为字符串LIST1,而不是变量LIST1.我也尝试过没有成功:
SET LIST!i!=!LIST!i!! "%%x"
Run Code Online (Sandbox Code Playgroud)
脚本的用途:将JPG文件名放在3个列表EDIT中以回答第一个注释:文件名称以循环方式分布并用空格分隔.