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

标签 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 -> 160x160

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

最佳答案

使用双百分号:

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

关于windows - 为什么 mogrify 将 PNG 大小调整为 50 像素的宽度,而不是批处理文件中指定的 50%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25548511/

相关文章:

windows - Windows(或其他操作系统)如何更新客户端的后台区域?

python - 在 PyInstaller 中,为什么 NumPy.Random.Common 不能作为模块加载?

java - 通过java文件批量传递参数

windows - 一个环境中的Python多行cmd条目

ruby-on-rails - 使用 Rmagick 或 ImageMagick 在背景上放置标题

imagemagick - 如何让 jekyll-assets 与 ImageMagick 一起使用?

vb.net - 如何向我的 VB.NET 应用程序添加 list (用于 UAC 支持)?

c++ - 使用用户的 "Region and Language"格式将 Windows SYSTEMTIME 转换为 C++ 中的字符串或字符 buf?

batch-file - 批处理文件解析 XML 文件并将文件复制到不同的文件夹

ruby-on-rails - 如何使用带有变体的 Imagemagick 命令行选项创建裁剪和居中的图像?