使用ImageMagick将不同的图像格式批量转换/调整大小为特定分辨率的JPEG



如何使用mogrify批量转换大量文件(.TIF、.EPS、.JPG,但最令人烦恼的是-).PSD文件并只保留其第一层?

我找到了一个如何转换所有图像的解决方案,但我一直在输出目录中获取与原始文件不同的文件名(原始文件名附有-0、-1、-2等)。

我有两个文件夹/original/(其中包含我的PSD、EPS、TIF、GIF、JPG和其他图像)+文件夹/converted/(这是我转换的目标文件夹)

我用来转换图像的命令是:

mogrify -verbose -path ./converted/ 
-alpha off -strip -mattecolor white -background white 
-resize 512x512 -format jpg -quality 75% -interlace Plane ./original/*.*

但无论我做什么,我都会收到这些垃圾,它们会破坏我的文件名。然而,有一种模式只是将文件的每一种解释合并为一种,但这也很无用,因为我在透明文件上得到了黑色背景。

经过两个小时的搜索,我终于找到了答案,因为我喜欢stackoverflow,所以我在这里分享它:

为了选择PSD的最佳图像或GIF的第一帧,您只需要在输入文件中添加一个索引0(随意添加,没有双引号:"[0]")。

因此,转换所有图像的命令(你需要先安装带有mogrify的ImageMagick),任何透明的东西都有白色背景,在512x512像素的边界框内,以50%压缩质量的jpg输出,使用的层和第一个索引,你需要执行以下命令:

mogrify -verbose -path ./converted/ 
-alpha off -strip -mattecolor white -background white -layers Dispose 
-resize 512x512 -format jpg -quality 75% -interlace Plane ./original/*.*[0]

希望这将成为任何需要批量转换大量图像的人的一个易于使用的模板。

我找到了几个图像转换器,但没有一个像mogrify那样易于使用,当然,它是一个linux可执行文件,它为你可以用它做什么提供了几乎无限的可能性……一切都应该是可脚本化的。

最新更新