
背景
デジタル写真のバックアップを取っていたところ、一部の写真がカメラから 2 つの異なるフォルダに 2 回インポートされていることに気付きました。これは問題ではありません。
問題は、ファイル サイズを比較していたときに、重複したファイルの一部が小さいことに気付いたことです (4.6 MB 対 5 MB)。小さいファイルMicrosoft Photo Viewer
には Exif データのプログラム名フィールドがあり、大きいファイルにはそのフィールドにカメラ モデルがあることに気づきました。また、高さと幅の寸法が入れ替わっています (画像が回転しています)。
質問
なぜ私の写真が操作されるのでしょうか?
ファイル サイズの違いは、操作によって画像の品質が低下していることを示していますか?
- あるいは、Windows がカメラよりも効率的な JPEG 圧縮アルゴリズムを使用している可能性はありますか? (両方とも最低レベルの JPEG 圧縮を使用していると仮定)
- それとも、写真の向きによって JPEG の圧縮方法が異なるのでしょうか?
答え1
Windows は、写真を回転するときに、ソフトウェア (Exif) と CreatorTool (Exif) の 2 つのタグを追加します。ただし、Windows エクスプローラーでは 1 つのタグとして表示されます。
なぜ操作されるのでしょうか? おそらく、Windows はカメラからの回転タグに従って写真を回転します。
写真は 2 つの方法でロスレスに回転できます (もっとあるかもしれません)。1 つは Exif 回転タグです。これは、回転した画像を表示するための画像ブラウザー用のデータにすぎません。2 つ目は、画像データ (「実際の」回転) を操作しますが、データを失うことはありません*。両方の写真が回転している場合は、1 つに Exif 回転タグがあり、もう 1 つが実際に Windows によって回転されていることを意味します。画像ブラウザーが Exif 回転タグをサポートしている場合は、両方の写真が同じように見えます。
なぜサイズが変わったのでしょうか? ファイルがないと判断するのは困難です。サムネイルだと思います。一部のカメラは JPEG ファイルに非常に大きなサムネイルを追加し、Windows はそれを削除するか独自のサムネイルに変更します。この場合、写真は変更されませんが、メタデータ (正確には「写真内の写真」) が変更されます。exiftool 情報 ( exiftool filename.jpg
) を見て、メタデータが変更されたかどうかを比較できます。特にバイナリ データに関する情報を確認してください。または、回転したファイルと元のファイルの 2 つのファイルをこちらに送信していただければ、確認します。
JPEG 圧縮 - Windows が JPEG を再圧縮するとは思えません。この場合、おそらくロスレス操作のみが行われるため、メタデータのみが変更されます。
Windows やカメラメーカーのツールなどを使用せずに、自分で写真を撮ることをお勧めします。
ちなみに、必要に応じて、これらのタグを削除できます (コマンドは、現在のディレクトリから始めて、.jpg 拡張子を持つすべてのファイルに対して再帰的に機能します)。
exiftool -preserve -EXIF:Software= -if "$EXIF:Software =~ /(^Microsoft Windows Photo Viewer)/" -r -ext jpg .
exiftool -preserve -XMP:CreatorTool= -if "$XMP:CreatorTool =~ /(^Microsoft Windows Photo Viewer)/" -r -ext jpg .
問題がなければ、バックアップを削除します。
exiftool -delete_originals -r -ext jpg .
*
それぞれに 8x8 ピクセルの画像が配置された正方形のタイルを想像してください。そして、各タイルを回転させます。これが Windows が行うことです。問題は、タイルが 8x8 でない場合、つまり、高さまたは幅を 8 で割ることができない場合です。その場合、Windows はファイルを再圧縮します。
答え2
Microsoft Photo Viewer の古いバージョンに別のバグを発見した可能性があります。EXIF データに「Microsoft Photo Gallery 6.0.6001.18000」のタグが付けられた一連の画像に遭遇しました。
XResolution と YResolution が誤って表示されていました。本来は 96/1 であるべきところを 1/96 と表示されていたり、0/1 と表示されたり、あるいは「無限大」と表示されたりしていましたが、これは何を表そうとしていたのかわかりません。これはサムネイルの解像度なので、MS Photo Viewer がサムネイルを作成していたことを示している可能性があります。
私が本を作ろうとしたとき、archive.org で問題が発生しました。
このバージョンの Microsoft フォト ギャラリーは古くなっているため、バグは修正されていると思われます。
これらの誤ったフィールドを修正するには、「EXIF Pilot」というソフトウェアを使用する必要がありました。EXIF フィールドに一括でアクセスできると便利でしたが、バッチ ツールは EXIF Pilot のプレミアム プラグインであり、Total Commander の有料版も持っていません。
これらは私のファイルではないので、EXIF データが破損した原因について推測していますが、Microsoft Photo Viewer が原因ではないかと考えています。