「Windows 10ミニTips」は各回の作成時点で最新のWindows 10環境を使用しています。

WSLからImageMagickを使う

Windows 8.xのエクスプローラーに加わった変更の1つがExif対応である。撮影した各情報を保持するExifは撮影時の向きを記録し、その結果がエクスプローラーに反映されるようになった。

これで何が起こるかというと、撮影した写真をPCのフォルダにまとめた際、意図せず回転してしまった写真が縦表示・横表示で混在することになる。

Exif対応は当然ながらWindows 10にも引き継がれており、本紙編集部や一部のユーザーからは困ったという声も聞く。エクスプローラー自身にExif情報を無視するオプションはない。

  • 同じデジタルカメラで向きを変えつつ、同じモノを撮影した結果

個人的にはフォトレタッチアプリを使えば十分だと思うが、本連載では“可能な限り”Windows 10の標準環境で実行することを趣旨としているため、これに沿って解決策を考えてみよう。一見するとExif情報を削除すれば済むように思えるが、少なくとも筆者が確認した限りでは不可能だ。

  • Exif情報を削除したコピーを作成しても、画像の傾きは戻らない

そこで頼りとするのがWSL(Windows Subsystem for Linux)という仕組み。これはWindows上でLinuxの実行環境を構築できるものだ。

Linuxであれば、コマンドラインから画像を加工するImageMagickがある。これを使えば意図しない回転を修正した画像ファイルを作成できるはずだ。なお、WSLのインストール手順は割愛するが、未インストールの場合は「Windowsの機能の有効化または無効化」からインストールし、ImageMagickは「sudo apt install imagemagick」でインストールしておこう(初めてMicrosoftストアのUbuntuアプリを使う人はUpdateを忘れずに)。

  • 「Win」+「R」キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「notepad」と入力して「OK」ボタンをクリック/タップする

  • 下記の内容をメモ帳に入力し、任意のファイル名と任意のフォルダーを指定して保存する(ここではPhoto-Orient.bat)


@echo off
cd /d %~dp1
for %%a in (*) do (
wsl.exe --exec convert %%~na%%~xa -orient top-left %%~na-New%%~xa
)
※メモ帳から作成した上記ファイルと同じものを以下からダウンロードできます。
1. Photo-Orient.zipをダウンロードして展開します。
2. 格納されている「Photo-Orient.bat」を任意の場所(デスクトップなど)に置きます。
  • バッチファイルに画像ファイルをドラッグ&ドロップすると、一連のファイルに対して画像の向きが修正される

ご覧のとおり、冒頭の画像に写っているサムネイルで、IMG_1024.JPGの画像方向が変わっている(-Newが付いたサムネイルが修正後のファイル)。これはImageMagickのorientオプションが方向を示すExif Orientation情報の編集に限定されるためだ。つまり、画像方向がRotate 90 CW(90度左回転)のIMG_1024.JPGだけが変換対象となり、画像方向が回転なし(Normal)のIMG_1025.JPGは変わっていない。

阿久津良和(Cactus)