image - 试图将 Magick 转换为 .Bat 以进行拖放
问题描述
所以我有这个320x320
像素文件叫做player0.bmp
. 我想切割成32x32
像素.bmp
文件。我可以运行cmd.exe
提示符,将目录更改为文件所在的目录,然后运行此命令;
magick convert player0.bmp -size 320x320 -crop 32x32 player0-%02d.bmp
这个脚本有效,它将图像分解成我想要的。但是我想避免在命令中为数百个文件更改文件名。有什么方法可以创建.bat
文件来执行此操作而无需更改脚本文件名和输出文件名?
我希望能够只是拖放Item0.bmp
到.bat
文件上并让它吐出,然后能够拖放并让它Item0-01.bmp
出来。Item0-99.bmp
Item1.bmp
Item1-01.bmp
Item1-99.bmp
任何帮助制作此.bat
文件将不胜感激!
解决方案
这个使用 ImageMagick v7 的 Windows BAT 脚本将拖放文件作为输入图像,将其裁剪为 32x32 像素块,并使用输入文件名加上三位连续编号(如“inputfile_000.bmp”)写入输出文件, “输入文件_001.bmp”、“输入文件_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 脚本中,大多数情况下都需要将百分号加倍。
在带有 IMv7.0.10 的 Windows 10 上对此进行了测试,通过将“magick”更改为“convert”,它也适用于 IMv6.9.10。
推荐阅读
- youtube-api - 来电者没有权限 [403] 错误 - YouTube 缩略图
- php - 单独的通知不会出现在订阅主题的同一设备上
- sql - 从单独的事实表中查找状态
- android - 如何检查由单独 Android 应用程序中的服务启动的 Android 应用程序是否已完成加载?
- html - 为什么 GMail 在餐厅预订时忽略此微数据?
- jetty - 无法在码头嵌入式服务器中设置 MaxFormContentSize
- meteor - Meteor Google OAuth 错误:“无法完成与 Google 的 OAuth 握手”错误 401 Unauthorized
- jooq - JOOQ 连接两个具有相同列名的表
- mysql - 是否可以创建一个触发器,该触发器在将记录插入一个数据库但最终插入另一个数据库时执行?
- android - 更改 primaryKeys 顺序会更改 ROOM 中保存的数据的顺序