web-dev-qa-db-ja.com

向きに合わせて画像を自動回転(および上書き)します

サムスンの携帯電話で写真を撮りました。

  1. 電話で表示すると向きが良い

  2. Picasaで表示すると、向きが適切になります(つまり、JPGファイルに正しい向きのメタデータが含まれています)。

enter image description here

  1. Windows 7 Explorerのサムネイルに表示されたときの向きは間違っています

enter image description here

  1. Windows 7の画像ビューアで表示した場合の向きは間違っています

enter image description here

1つの解決策は、「Windows 7の組み込みの画像ビューアを忘れて」、別のより優れた画像ビューアを使用することですが、これは望ましくありません

JPGファイルを新しい適切な方向で永続的に書き直し(そしてそれらを上書きし)、何百ものJPGファイルにまとめて、つまり私が画像を次々に表示するときに、これらのボタンを手動で何百回もクリックしました。

enter image description here

しかし自動的に、スクリプトで。

これを行う方法は?

注:notロスレスになる可能性があることはわかっていますが、デフォルトのWindows 7画像ビューアーが適切な向きで表示されるように、永続的な回転が必要です。

注2: ソースファイルはこちら 、ダウンロード可能。

2
Basj
  • ここからjpegtranをダウンロードします: http://jpegclub.org/jpegtran/jpegtran.exe への直接リンク。この.exeを自分で実行する必要はありませんが、jhead(次のポイントを参照)が機能する必要があります。 jpegtranは、そのホームページによると、「ロスレス回転と関連する変換」を実行できるツールです。

  • ここからjheadをダウンロードします: http://www.sentex.net/~mwandel/jhead/jhead.exe への直接リンク。 jheadは「ExifJpegヘッダー操作ツール」であり、JPG内の方向メタデータを読み取り、必要に応じて回転のためにjpegtranに渡します。

  • ただ走れ

    _jhead -autorot *.jpg
    _

以上です!

この 質問 は役に立ちました。Windowsユーザーの観点から使いやすいように詳細を追加しました。

注:一部のファイルでエラーが発生し、他のファイルの処理を続行できない場合があります。これは煩わしいことです。この場合、for /r %i in (*.jpg) do jhead -autorot "%i"が役立ちます。 [バッチファイルの場合は、for /r %%Mi in (*.jpg) do jhead -autorot "%%i"を使用してください]

2
Basj