使用 mogrify 转换(压缩)JPEG 图像,并将原始文件保存在同一目录中

使用 mogrify 转换(压缩)JPEG 图像,并将原始文件保存在同一目录中

我正在尝试使用 imagemagick 命令 mogrify 转换(压缩)一堆 JPEG 图像,并将原始文件保存在同一目录中。我在终端窗口中输入:mogrify -quality 25% *.JPEG con-%002d.JPEG 然后我收到错误:mogrify:无法打开图像“con-%002d.JPEG”:没有这样的文件或目录@error/blob.c/OpenBlob/2712。我该如何解决这个错误?我运行了:identify -verbose * | grep Format 并且结果适用于所有文件:格式:JPEG(联合图像专家组 JFIF 格式)exif:thumbnail:JPEGInterchangeFormat:10718 exif:thumbnail:JPEGInterchangeFormatLength:8223

我的系统是 Xubuntu 16.04,很感谢你们的帮助,谢谢 Vladi。

答案1

根据手册页mogrify ,它不采用输出选项,除非格式发生变化(直到文件扩展名都使用相同的名称),否则它只会覆盖输入文件。

尝试使用这个convert

#!/bin/bash
n=1
for i in *.JPEG; do 
    convert "$i" -format jpg -quality '25%' $(printf con-%03d.JPEG $n)
    n=$((n+1))
done

JPEG 与 jpg

我对同一张图片进行了两次变形

$ mogrify -format JPEG b.jpg
$ mogrify -format jpg b.jpg

然后

$ diff -u <(identify -verbose b.jpg ) <(identify -verbose b.JPEG)
--- /dev/fd/63  2018-09-29 14:42:27.506462707 -0400
+++ /dev/fd/62  2018-09-29 14:42:27.510462929 -0400
@@ -1 +1 @@
-Image: b.jpg
+Image: b.JPEG
@@ -71,2 +71,2 @@
-    date:create: 2018-09-29T14:37:11-04:00
-    date:modify: 2018-09-29T14:37:11-04:00
+    date:create: 2018-09-29T14:37:03-04:00
+    date:modify: 2018-09-29T14:37:03-04:00
@@ -77 +77 @@
-    filename: b.jpg
+    filename: b.JPEG

答案2

使用-write

mogrify -set filename:name '%t_q%Q' -quality 30 -write '%[filename:name].jpg' *.jpg

上述命令将转换后的图像写入新名称:converting姓名.jpg名称_q30.jpg名称1.jpg名称1_q30.jpg. 保证您的旧文件安全。

对于他人百分比逃逸元数据选项,请参阅文档

相关内容