• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JPEGファイルエラーをTerminalで検出)

JPEGファイルのエラーをTerminalで検出する方法

このQ&Aのポイント
  • JPEGファイルのエラーをTerminal等のCUIで検出する方法について教えてください。
  • 特定のフォルダ内にある約1000枚のJPEGファイルが破損していないかをファイルブラウザではなくTerminal等のCUIで確認したいです。
  • CUIで画像を開かずに単にエラーの有無を一括で確認する方法が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

No1です。 ファイルが中途半端に壊れているときには、ファイルを変換してしてエラーをチェックした方が確実かもしれません。 sips -s format jpeg --out temp abc.jpg でtempに変換できます。--outを忘れるとabc.jpg自体が書き換えられるようで注意してください。

doh-
質問者

お礼

ki073様、丁寧なご回答、誠に感謝しております。 上記の補足に、試してみた結果と、 加えて質問させて頂きたいことを 記入しましたので、お手数ですが、 ご教授頂けるとありがたいです。

doh-
質問者

補足

ki073様、有益なご回答誠にありがとうございます。 過去に遭遇した破損JPEGファイルにご提案頂いたコマンドを 行ったところ、下記の結果になりました。 sips -g all abc.jpg  → 画像情報が表示される ls *.jpg|(xargs -I% -t sips -g all % >/dev/null) 2>&1|grep -B1 Error  → エラーが検出されない  (おそらくJPEGのExif領域が壊れていないから?) sips -s format jpeg --out temp abc.jpg  → エラーが検出される  (<Error>: ImageIO: JPEG Corrupt JPEG data: bad Huffman code) まとめると、sips -g all abc.jpg のように 画像プロパティを取得するコマンドでは エラーが検出されず、 (Finderの"情報を見る"の操作でもエラーなし。) 本画像を編集するコマンドを使用すると 開くときにエラーを出すため、結果的に エラーをTerminalで確認できました。 無知で申し訳ないですが、フォルダ内の 全JPEGファイルに上記の sips -s format jpeg --out temp abc.jpg のような 本画像編集コマンドを実行するには どのような書き方(指定)をすれば良いのでしょうか? また、新しいファイルを出力するので、"--out" 以降を 別フォルダに指定しようと考えております。 ki073様、可能であれば、ご教授のほどよろしくお願いいたします。

その他の回答 (2)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

こんな命令でどうでしょうか ls *.jpg|(xargs -I% -t sips -s format jpeg --out ${TMPDIR}temppic % >/dev/null) 2>&1|grep -B1 Error ${TMPDIR}temppicでテンポラリファイル専用のフォルダにtemppicをいう名前で変換結果を入れています。 そのフォルダできたファイルは数日たてば自動的に消されますので、ゴミ掃除が省けます。 これではチェック済みのファイルが分かりませんので、正常なものと壊れているものを分けて出力した方が便利で、 最終的にはAutomatorなどで使えるようにすれば、使い勝手が良くなると思います。 もし、ご自分ではできなくて、希望がありましたら書き込んでください。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

画像変換コマンドを使ってエラーを検出する方法はいかがでしょうか。 sipsが10.8での入っていると思うのですが(10.7ではありました) sips -g all abc.jpg のような感じで画像情報が標準出力にでます。 エラーだと、標準エラー出力にエラーがでます。 ちょっと複雑ですが ls *.jpg|(xargs -I% -t sips -g all % >/dev/null) 2>&1|grep -B1 Error でエラーのあるファイルがわかります。

doh-
質問者

お礼

ki073様、丁寧なご回答、誠に感謝しております。 上記の補足に、試してみた結果と、 加えて質問させて頂きたいことを 記入しましたので、お手数ですが、 ご教授頂けるとありがたいです。

関連するQ&A