iPhoneの写真をWindowsへ取り出したとき、DNGには撮影日時やカメラ機種が残っていました。JPEGに変換するだけなら選択肢はあります。今回困っていたのは、変換後に写真を整理するときも撮影日で並べたいこと、元の写真を失わずにまとめて処理したいことでした。この二つを条件にして、AIとWindows用の一括変換ツールを組み立てました。
JPEGが開けることと、いつ撮ったか分かること
DNGは写真の元データを保存する形式の一つです。JPEGを作る工程は、見える画像を書き出す処理です。一方、撮影時刻・向き・カメラ名などは、画像に付随するメタデータです。たとえばJPEGのファイル更新日が今日でも、その中に数年前の撮影日時を残せます。確認時にはエクスプローラーの更新日時だけを見ず、写真管理で使いたい撮影日時の項目を見ます。
最初の指示に、壊してはいけないものを入れる
当時のやり取りをもとに、同じ用途で使える形に整理した指示例です。
入力はDNGのフォルダ、出力は別フォルダ。元画像の削除・上書きを禁止。まず少数のコピーで試す。JPEGが開くことに加え、元と出力の撮影日時、機種、向きを照合する。GPSは有無と用途を確認し、比較結果に位置の数値は出さない。失敗したファイルは成功件数と分けて報告する。
ファイル数だけで成功を数えると、撮影日が落ちたJPEGも成功になります。変換に成功したことと、必要な属性が引き継がれたことを別々に記録すると、どこまで安心して一括処理できるか判断できます。
初版に残った一手間を、配布版でなくす
初版では、利用者がExifToolを別途入手し、画面から実行ファイルの場所を指定する必要がありました。自分のPCでは一度設定すれば使えますが、人へ渡すと、写真を選ぶ前に別のソフトを探すことになります。「撮影日を残して変換したい」だけの人にとっては、そこが一番分かりづらい部分です。
そこで次の版では、公式のExifToolを第三者コンポーネントとして同梱し、アプリ内部から呼び出す構成にしました。画像変換の処理と、メタデータを扱う道具を分けることで、後者を一から作り直す必要がありません。同梱物とライセンスの記録も配布物に含めています。
自分の環境で起動する段階と、配布物が動く段階を分けた
開発フォルダに必要なソフトが入っていれば、配布ZIPにファイルが足りなくても、自分の環境では動いてしまうことがあります。確認は、ビルドが通ること、内蔵したExifToolを実行できること、公開ZIPを取り直して自己診断を通すことに分けました。当時は公開ZIPでの自己診断まで確認しています。
同種のツールを作るなら、変換対象を絞って試作し、元画像を変えず別フォルダに出し、画像とメタデータを個別に照合します。その後に、配布先の人が事前に何を用意する必要があるかを書き出します。今回の版では、ZIPを展開して起動し、入力と出力のフォルダを選ぶ流れまで操作を絞れました。
技術資料:公開したWindows版
技術資料:ExifTool公式サイト
コメント