为什么mogrify将PNG的大小调整为50像素的宽度而不是批处理文件中指定的50%?

时间:2014-08-28 12:11:12

标签: windows batch-file imagemagick mogrify

在我帮助下制作了这段代码:

mkdir SDtemp
copy *@2x*.png SDtemp
mogrify -format png -resize 50% SDtemp/*@2x*.png
pushd SDtemp

setlocal enableDelayedExpansion
for %%a in (*.png) do (
    set "filename=%%~nxa"
    set "purged_filename=!filename:@2x=!"
    ren %%~nxa !purged_filename!
)

endlocal
move *.png ..
popd
rmdir /s /q SDtemp

我想,我的问题出在这一行:

   mogrify -format png -resize 50% SDtemp/*@2x*.png

它没有正确调整大小。 320x320的图像现在是50x50,而600x140的图像是50x12,真的很奇怪。

我希望它像这样调整大小:320x320 - > 160×160

编辑:我发现了问题,我必须写%%,因为%是一个特殊字符。

1 个答案:

答案 0 :(得分:3)

使用双百分号:

mogrify -format png -resize 50%% SDtemp/*@2x*.png