使用 ImageMagick 转换多个图像
Convert multiple images with ImageMagick
我想使用 ImageMagick 将我所有的 PNG 转换为 PNG(我需要这个,因为 AndroidStudio 对原始 PNG 有一些问题。 ImageMagick 能够通过重新导出 PNG 来解决这个问题。)
如果我这样做:convert a.png a.png
它有效。
但是我如何为许多文件(包括子目录中的文件)执行此操作?
试试这个命令。从要转换所有图像的最顶层目录开始:
find . -name "*.png" \
| while read image; do \
convert "${image}" "${image/.png/---repaired.png}
done
注意事项: 如果您的 PNG 文件后缀为 .PNG
或 .pNg
或类似,则命令不适用于这些。对于这种情况,命令需要一些修改...
对于 Windows 用户 -- 您可以在 cmd.exe
window:
中尝试
for %i in (*.png *\*.png *\*\*.png *\*\*\*.png) do (
convert.exe %i %~pni---repaired.png
)
这将遍历当前目录的 PNG 以及 3 层深的子目录中的 PNG。
您必须确保您的 convert.exe
确实来自 ImageMagick - 相应地设置您的环境变量 %PATH%
。否则你可能 运行 当命令想要使用同名的 磁盘格式转换 convert.exe
命令时出错 .
如果不确定,请使用 IM convert.exe
的完整路径,例如:
D:\programs\imagemagick-install-dir\convert.exe %i %~pni---repaired.png
此外,请记住: 如果将上述命令放入 *.bat
文件中,则必须将每次出现的 %
加倍。因此,直接命令中的 %i
在批处理文件中变为 %%i
!
如果您使用的是 Vista/Windows7/2008/8(或安装了 Resource Kit 的 Windows XP),您将拥有 ForFiles.exe
可用,可用于循环文件:
forfiles.exe ^
/p <path> ^
/m *.png ^
/s ^
/C "convert.exe @file @fname---repaired.png"
我想使用 ImageMagick 将我所有的 PNG 转换为 PNG(我需要这个,因为 AndroidStudio 对原始 PNG 有一些问题。 ImageMagick 能够通过重新导出 PNG 来解决这个问题。)
如果我这样做:convert a.png a.png
它有效。
但是我如何为许多文件(包括子目录中的文件)执行此操作?
试试这个命令。从要转换所有图像的最顶层目录开始:
find . -name "*.png" \
| while read image; do \
convert "${image}" "${image/.png/---repaired.png}
done
注意事项: 如果您的 PNG 文件后缀为 .PNG
或 .pNg
或类似,则命令不适用于这些。对于这种情况,命令需要一些修改...
对于 Windows 用户 -- 您可以在 cmd.exe
window:
for %i in (*.png *\*.png *\*\*.png *\*\*\*.png) do (
convert.exe %i %~pni---repaired.png
)
这将遍历当前目录的 PNG 以及 3 层深的子目录中的 PNG。
您必须确保您的 convert.exe
确实来自 ImageMagick - 相应地设置您的环境变量 %PATH%
。否则你可能 运行 当命令想要使用同名的 磁盘格式转换 convert.exe
命令时出错 .
如果不确定,请使用 IM convert.exe
的完整路径,例如:
D:\programs\imagemagick-install-dir\convert.exe %i %~pni---repaired.png
此外,请记住: 如果将上述命令放入 *.bat
文件中,则必须将每次出现的 %
加倍。因此,直接命令中的 %i
在批处理文件中变为 %%i
!
如果您使用的是 Vista/Windows7/2008/8(或安装了 Resource Kit 的 Windows XP),您将拥有 ForFiles.exe
可用,可用于循环文件:
forfiles.exe ^
/p <path> ^
/m *.png ^
/s ^
/C "convert.exe @file @fname---repaired.png"