ImageMagick:转换图像并保持转换后的图像名称相同

48

我正在将一个文件夹中的.psd文件转换为.png文件。如何在不同后缀名的情况下保持每个文件的相同名称?

例如,我进入图像文件夹,然后从终端执行以下命令:

$ convert *.psd *.png

但它给 .png 文件命名时只用数字,与相应的 .psd 图像不同。


2
你应该接受@emcconville的答案,因为它是独立于平台的。 - Kurt Pfeifle
我无法理解你的英语... - Yan King Yin
4个回答

82

使用-set和格式选项。

convert *.psd -set filename:base "%[basename]" "%[filename:base].png"

请查看"长格式属性百分号转义"和"文件名百分号转义"文档。

更新

随 Imagemagick 一起发行的mogrify实用程序也可以使用。

mogrify -format png *.psd

注意:根据文档所述,mogrify需要小心使用...

该工具类似于convert,但除非您使用-format选项更改文件后缀,否则原始图像文件将被覆盖并应用任何您请求的更改。


5
更新一下:现在base被称为basename。做出这个替换后,它能按预期工作了! - Jomel Imperio
4
将 *.psd 转换为 "%[basename].png",其中 "%[basename]" 是文件名的占位符。 - jan-glx
mogrify -format png *.psd works as the best, BTW you can add is as Action on Thunar file manger mogrify -format png %F - Salem

15
如果您使用的是Linux、Unix或Mac OSX操作系统,在Bash Shell终端窗口中可以使用以下命令:
for i in *.psd; do
     convert $i ${i/.psd/.png}
done

我故意不再宣传mogrify了。对于每个不知道它的用户和来到这个网站寻求帮助的人来说,它太危险了。 在某些情况下,mogrify会覆盖您的原始文件(当然,在转换PSD-> PNG时不会)


14

或者更简单的方法:

mogrify -format png *.psd

没错,使用 -format 的 mogrify 命令会做同样的事情。 - emcconville
3
请注意,在ImageMagick的v7版本中,该命令应为magick mogrify -format png *.psd - Mark Setchell
@MarkSetchell 谢谢,可以用什么方法将输出放到子文件夹中吗?我想不出来。 - Eskel
@Eskel 是的。mkdir OUTPUT; magick mogrify -path OUTPUT -format png *.psd - Mark Setchell

5

我喜欢最佳答案

话虽如此,在ImageMagick的后续版本中,命令是

convert *.psd -set filename:basename "%[basename]" "%[filename:basename].png"

正如@jan-glx和@jomel imperio提到的那样


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接