我读使用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