web-dev-qa-db-ja.com

元のファイルを同じディレクトリに保持しながら、mogrifyを使用してJPEG画像を変換(圧縮)します

Imagemagickコマンドmogrifyを使用して、元のファイルを同じディレクトリに保持しながら、多数のJPEG画像を変換(圧縮)しようとしています。ターミナルウィンドウに入力しています:mogrify -quality 25%* .JPEG con-%002d.JPEGすると、エラーが発生します:mogrify:画像を開くことができません `con-%002d.JPEG ':そのようなファイルまたはディレクトリはありません@エラー/blob.c/OpenBlob/2712。このエラーを解決するにはどうすればよいですか?実行しました:identify -verbose * | grep形式と結果はすべてのファイル用です:形式:JPEG(Joint Photographic Experts Group JFIF形式)exif:thumbnail:JPEGInterchangeFormat:10718 exif:thumbnail:JPEGInterchangeFormatLength:8223

私のシステムはXubuntu16.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 vs jpg

同じ画像を2回モグリ化した

$ 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
chew socks

使用する -write

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

上記のコマンドは、変換された画像を新しい名前に書き込みます:convertingname.jpgtoname_q30.jpgname1.jpgからname1_q30.jpg 。古いファイルを安全に保つ。

その他のパーセンテージエスケープメタデータオプションについては、 docs を参照してください。

0
Janghou