我想批量转换/循环遍历文件夹中的所有图像" / input"然后优化所有图像,最后将它们输出到文件夹" / output"。
我怎样才能做类似的事情:
self.x
^目前使用上述脚本,我必须为每个图像手动运行,一次一个!
如何使用shell脚本为我批量执行此类操作?
答案 0 :(得分:2)
您应该使用mogrify
命令而不是convert
。
使用-path
选项在特定目录中创建输出图像。如果你不这样做,你的原始图像将被覆盖。
mogrify -sampling-factor 4:2:0 -strip -quality 75 -resize 700x466! -interlace JPEG -colorspace RGB -background white -flatten -path /Users/james/Desktop/image-magick/final/ /Users/james/Desktop/image-magick/*.jpg
答案 1 :(得分:1)
之前的答案几乎是正确的。在任何其他设置之前首先使用-strip,否则它们将丢失。当前版本的ImageMagick也使用-colorspace sRGB,除非你想要更暗的线性RGB色彩空间。下面有正确的ImageMagick语法去除,转换为sRGB,调整大小,然后设置所有的jpg输出设置。
cd path2/inputdirectory
mogrify -strip -colorspace sRGB -resize "700x466!" -background white -flatten -interlace JPEG -sampling-factor 4:2:0 -quality 75 -path /Users/james/Desktop/image-magick/final/ *.jpg
请注意,JPG不支持透明度,因此我不确定为什么在命令中有-background white -flatten。如果你的输入是png(即* .png或只是*来处理所有格式),那将是合适的。