ByteScope

Remove EXIF

EXIF・GPS・IPTCをbyte単位で切り落とす — 再エンコードしないので、画素はビット単位で元のままです。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

削除の設定

おすすめの設定です。写真が正しい向きで表示されるように Orientation タグだけ最小限で残し、下のスイッチが入っていればカラープロファイルも残します。カメラ、GPS、撮影日時、サムネイルなど、それ以外はすべて削除します。

写真をここにドロップ

クリックして選ぶこともできます — JPEG と PNG、枚数は自由

このツールについて

ここで言う無劣化には、検証できるはっきりした意味があります。まずbyteに何が起きるかから。JPEGはマーカーsegmentの連なりで、メタデータはそれ専用のsegmentに入っています。APP1 にEXIF(カメラ、日時、GPS)、APP13 にIPTCとPhotoshopのブロック、APP2 にはICCプロファイルが入ることもあります。掃除するというのは、その連なりをたどってメタデータのsegmentを落とし、圧縮済みのscanデータはそのまま通すことです。エントロピー符号化された画像データはデコードも再量子化も再エンコードもしません。byte単位でコピーするだけなので、出てくる画素は入れた画素とビット単位で同一です。見た目が同じ、ではありません。同一です。

他のメタデータ削除ツールはほぼ逆のことをします。JPEGをデコードし、ファイルまるごと捨てた結果としてメタデータも消え、新しく1枚エンコードし直す。たしかにきれいになりますが、そのたびに画質を一世代払っています。古い量子化の上に新しい量子化が乗り、もともと甘かったエッジにブロックノイズが出て、しかも元より大きいファイルになることも珍しくありません。2回消せば2回払います。PNGも同じbyteレベルの扱いです。PNGはchunkの連なりなので、tEXtiTXtzTXteXIf を落とし、IDAT の画像データは触らずにコピーします。どちらの形式でも、再圧縮は一切ありません。

フォルダごと放り込めば1回で全部片付き、1枚ずつでもまとめてでもダウンロードできます。各ファイルには削除前後のメタデータ対照が付きます — どのタグが見つかり、どれを消し、何が残ったか。「メタデータを削除しました」という宣言だけでは確かめようがなく、確かめられることがこのページの存在理由そのものだからです。別の経路からの裏取りが欲しければ、掃除したファイルをEXIFビューアで開いてみてください。すべてブラウザ内で動きます。写真のプライバシーを守りますと言いながら、まずその写真をサーバーへ送らせるツールは、そもそも信用のしかたが分かりません。

なぜ気にする必要があるのかは、地味で具体的な話です。自宅のリビングで撮った写真を公開すれば、そのリビングの座標が数メートルの精度で、撮影時刻と撮った端末ごと付いていきます。フリマに自宅で撮った商品写真を出す、趣味のグループに愛犬を投稿する、掲示板に旅行の写真を上げる — 誰も読まないフィールドに住所が同乗し、そして誰かが読むまで気づきません。大手プラットフォームはアップロードを再圧縮するので副作用としてメタデータが落ちますが、ファイルを直接渡す経路はそうなりません。メールの添付、クラウドの共有リンク、DiscordやTelegramのファイル送信、ファイルとして手渡すものすべてです。出ていく前に、一度掃除しておくこと。

よくある質問

EXIFを消すと画質は落ちますか?

落ちません。理由をはっきり書いておきます。メタデータと画素はファイルの別の場所に住んでいます。JPEGなら画素はエントロピー符号化されたscanデータ、PNGなら IDAT chunk。このツールはそのどちらもデコーダに渡しません。そのまま出力へコピーし、周りにあったメタデータのsegmentを書かないだけです。展開しないので、圧縮し直すこともなく、失う世代がそもそも存在しません。出力は数KB小さくなり、EXIFと一緒にサムネイルが入っていれば数百KB小さくなります。そして画素はビット単位で元のまま。確かめたければ、2つのファイルをbinary diffで比べてください。動いているbyteは「写真そのもの」ではなく「写真を説明していた」byteだけです。

具体的に何が消えて、何が残りますか?

消えるもの: APP1 のEXIF(カメラ、レンズ、露出、DateTimeOriginal、GPS、カメラのシリアル番号)、APP13 のIPTCとPhotoshopブロック、XMP、JPEGのコメントsegment、EXIFに同梱されたサムネイル。PNGでは tEXtiTXtzTXttIMEeXIf chunk。既定で残すもの: ICCカラープロファイル(JPEGの APP2、PNGの iCCP と色関連chunk)。これは判断の分かれる項目なので理由を書きます。ICCプロファイルはあなた自身についても、カメラについても、どこにいたかについても何も語りませんが、外すと写真の見え方が変わります。Display P3の画像がsRGBとして描かれれば、目に見えて色が浅くなります。プライバシーツールが黙って色を変えるべきではありません。プロファイルも消したい場合は、そのためのスイッチがあります。

メタデータを消すと写真が横向きになりませんか?

ここが唯一の本当の罠なので、このツールは立場を決めています。スマホは多くの場合センサーの向きのまま画素を記録し、「表示するときは回して」という意味のEXIF Orientation タグを付けます。このタグを他と一緒に消すと、画素は無傷のままなのに、タグを頼りにしていたビューアでは横向きに表示されます。画素を実際に回せば直りますが、それは再エンコードを意味し、このページがやらないと決めているまさにその行為です。そこで既定の出力は、タグをちょうど1つだけ残します。Orientation だけを含む最小の APP1 ブロック — カメラもなし、日時もなし、GPSもなし — で、ビューアが正しい向きで描くにはこれで十分です。厳格モードにすればそれも落ちて、メタデータがゼロのファイルになります。本当に何も残したくないときに使ってください。ビューアによっては回って表示されます。Orientation がもともと 1 の写真はどちらでも失うものがないので、自分のファイルがどのケースなのかは対照表で確認できます。

無劣化で掃除できる形式はどれですか?

JPEGとPNGです。実際に掃除したいものはこの2つでほぼカバーできます — EXIFとGPSが入るカメラ・スマホの .jpg / .jpeg と、作ったソフト名が tEXt chunkに入るスクリーンショットやツールの書き出しであるPNG。WebP・HEIC・AVIF・TIFFは未対応です。同じ約束を守るには、コンテナごとに専用のbyteレベルの手術が必要になるからで、次に来る候補はWebPのRIFF chunkでしょう。これらをJPEGに変換すれば再エンコードになるので、メタデータ削除としてはここでは提供しません。変換したいのであれば画像コンバータがその仕事を正面からやりますし、その結果をここで掃除するのは自由です。

写真はどこかへアップロードされますか?

されません。各ファイルはFile APIでローカルに開き、segmentとchunkの手術はあなたのタブの中のJavaScriptで動き、掃除後のファイルはブラウザが生成したダウンロードとして返ってきます。このページは裏にAPIを持たない静的ファイルなので、原理的にアップロード先が存在せず、ネットワークを切っても動きます。このツールに限っては、それは細かい話ではありません。いちばんGPSを消したい写真は、いちばん知らないサーバーへ送りたくない写真であり、アップロード型のツールは、あなたが消そうとしていた座標をすでに受け取ってしまっているからです。