如何使用imagemagick将一个目录中的所有图像、jpg缩小到另一个目录

如何使用imagemagick将一个目录中的所有图像、jpg缩小到另一个目录

我读使用mogrify(imagemagick)批量转换我的所有文件(带参数)看起来我的查询/路径非常相似,除了我的目录中的所有图片都具有相同的宽度和高度。

[$] mediainfo 20160714_161847.jpg                                                                                               
General
Complete name                            : 20160714_161847.jpg
Format                                   : JPEG
File size                                : 2.66 MiB

Image
Format                                   : JPEG
Width                                    : 4 128 pixels
Height                                   : 2 322 pixels
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Stream size                              : 2.66 MiB (100%)

现在我想将它们批量压缩到另一个目录,这样原始/父图片就不会被触及。我确实知道任何压缩基本上都会从图片中获取信息,并且会产生一些伪影。

更明确地说,我们假设目录的数量是 -

/home/shirish/input_directory/*.jpg - input_directory 包含所有需要缩小/修剪的 .jpg,以便它们可以用于网络发布。

/home/shirish/output_directory/ - 这是经过处理的图片最终应该所在的位置。原始图片根本不应该被触摸并保留在原处。

如果有一种方法可以在浏览图片时看到操作的进度,或者使用 ASCII 条,或者最好告诉它要完成多少张图像,那就太好了以及控制台/ascii 栏。

有趣的是,示例图像似乎没有任何 GPS 信息,尽管我确信集合中的某些图像具有该信息。还有一种方法可以搜索/grep 所有图像,以查看图像中是否存在位置感知信息(GPS 坐标)或类似信息。

更新 - 只是分享它的工作原理 - 请参阅 -

 ~/Pictures/original$ mogrify -path /home/shirish/Pictures/reduced -monitor -quality 70 -trim -resize '>'600x480 *.jpg

    load image[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1215 of 1216, 100% complete

    Resize/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1052 of 1053, 100% complete

    Save/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 479 of 480, 100% complete

我唯一不知道的是 imagemagick 从哪里获得编号,但这是另一天的事,完全是另一个问题:)

答案1

这是命令的最小版本,用于将大小调整为宽度 600 高度 400(如果大于该值),将 jpeg 质量设置为 70(它是一个百分比:数字越小,字节数越少,但质量越差)。

cd /home/shirish/input_directory/
mogrify -path /home/shirish/output_directory/ -monitor   -quality 70  -trim  -resize '>'600x400 *.jpg

如果文件太多,您可能需要使用find|xargs

相关内容