试图将 Magick 转换为 .Bat 以进行拖放

Trying to convert Magick to a .Bat to drag and drop

所以我有一个名为 player0.bmp320x320 像素文件。我想切割成 32x32 像素 .bmp 文件。我可以 运行 一个 cmd.exe 提示符,将目录更改为文件的目录,然后 运行 这个命令;

magick convert player0.bmp -size 320x320 -crop 32x32 player0-%02d.bmp

这个脚本有效,它将图像分解成我想要的样子。但是我想避免在命令中更改数百个文件的文件名。有什么方法可以创建一个 .bat 文件来执行此操作,而无需更改脚本文件名和输出文件名?

我希望能够将 Item0.bmp 拖放到 .bat 文件上并让它从 Item0-01.bmpItem0-99.bmp 中输出,然后能够拖动并删除 Item1.bmp 并通过 Item1-99.bmp.

Item1-01.bmp 的形式出现

如能帮助制作此 .bat 文件,我们将不胜感激!

我真的不使用 Windows,也没有办法对此进行测试,但是,据我所知,当您将文件拖放到 Windows 批处理文件时,它会接收文件名作为参数,所以你可能会想要这些东西:

magick "%~1" -size 320x320 -crop 32x32 "%~dpn1-%%02d.bmp"

因为我 "think" %~dpn1 扩展为没有扩展名的全名。请仅在非关键文件上尝试此操作,因为我根本无法对其进行测试。您可能还需要更多的错误检查和多个文件名的处理,这样您就可以在脚本中放置 2 个或更多文件...

这个Windows使用ImageMagick v7的BAT脚本将拖放文件作为输入图像,将其裁剪成32x32像素块,并使用输入文件名加上三位数字写入输出文件顺序编号,例如 "inputfile_000.bmp"、"inputfile_001.bmp"、"inputfile_002.bmp" 等

@echo off

pushd "%~dp1"

magick "%~1" ^
   -set filename:0 "%%[t]" ^
   -size 320x320 ^
   -crop 32x32 ^
      "%%[filename:0]_%%03d.bmp"

popd

exit /b

它首先切换到拖放输入图像的目录,然后将输出文件写入那里。您应该能够将输入文件放在实际的 BAT 文件上,甚至放在 BAT 脚本目录以外的某个快捷方式上 输入图像。

请注意,在 BAT 脚本中大多数 情况下需要加倍百分号。

在 Windows 10 上使用 IMv7.0.10 测试了这个,并且通过将 "magick" 更改为 "convert",它也适用于 IMv6.9.10。