使用ImageMagick批量调整图像大小到新文件夹

tek*_*agi 39 bash image imagemagick filesize

我有一个图像文件夹4MB- 让我们调用这个文件夹dsc_big/.我想用convert -define jpeg:extent=2MB它们将它们转换为under 2MB并复制dsc_big/*dsc_small/已经存在的文件夹.

我试过,convert dsc_big/* -define jpeg:extent=2MB dsc_small/但产生的图像叫做-0,-1等等.

我该怎么办?

Edu*_*nec 51

convert据我所知,它被设计为处理单个输入文件,虽然我不得不承认我不理解你得到的输出.mogrify更适合以下样式的批处理:

mogrify -path ../dsc_small -define jpeg:extent=2MB dsc_big/*
Run Code Online (Sandbox Code Playgroud)

但老实说,我认为一般用法很危险(如果你忘记了它会覆盖原始图像-path)所以我总是使用convertfor循环来实现这个目的:

for file in dsc_big/*; do convert $file -define jpeg:extent=2MB dsc_small/`basename $file`; done
Run Code Online (Sandbox Code Playgroud)

basename,如果你在当前目录中处理文件调用是没有必要的.

  • 我添加了一个显示mogrify和链接的小例子. (2认同)

saj*_* tm 5

经过长时间的尝试,这是对我有帮助的命令。我想从宽度和高度可变的大图像的大列表中制作相同大小的缩略图。它用于创建图库页面。

convert -define jpeg:size=250x200 *.jpg  -thumbnail 250x200^ -gravity center -extent 250x200  crop/thumbnail-%d.jpeg
Run Code Online (Sandbox Code Playgroud)

我调整了缩略图的大小,使它们的宽度和高度都相同。:)感谢ImageMagick。