仕組み
デジタル写真に入っているのは、写っている絵だけではありません。ファイルの中には 目に見えない情報が埋め込まれています。撮影者が立っていた場所、使った機材、 シャッターを切った正確な時刻。この メタデータ は、 もともと写真家が作品を整理しやすいように用意されたものでした。 けれど写真をネットで共有するとなると、それはプライバシーのリスクに変わります。

多くの SNS はメタデータを自動で取り除いてくれるので、いつも問題になるわけでは ありません。ただ、メールの添付ファイル、クラウドストレージの共有リンク、掲示板、 個人サイトなどでは、元のファイルがそのまま残ることがよくあります。 自分が渡す情報を自分で決めたいなら、アップロードする前に写真をきれいにしておく 価値があります。
写真に隠れているもの
トップページのツールに写真をドロップすると、メタデータを調べます。 よく見つかって削除されるのは、たとえばこんな情報です。
GPS の座標
数メートルの精度で記録された緯度と経度。住んでいる場所、働いている場所、出かけた先まで分かってしまいます。
日時
写真を撮った日時が秒単位で残ります。毎日の予定や生活パターンが読み取れてしまいます。
端末の情報
カメラのメーカー、機種、レンズ、シリアル番号が入ることも。別々の写真から同一人物だと特定できてしまいます。
編集履歴
使ったソフト、作成者名、著作権表示。Photoshop や Lightroom などのツールが書き込みます。
どうやって削除するのか
PicScrub を使うと、こんなことが起こります。
画像は端末から出ません
処理はすべて JavaScript でブラウザの中だけで行われます。インターネットを切断してみればすぐ分かります。それでもツールは動きます。
形式を判別します
形式ごとにメタデータの持ち方が違うので、それぞれに合った方法を使います。
メタデータだけを外科手術のように取り除きます
画質が落ちてしまう再エンコードはしません。メタデータのセグメントを読み飛ばし、画像データだけでファイルを組み直します。
きれいなファイルをダウンロード
同じ画像、同じ画質、少し小さくなったファイル(メタデータは 10〜50KB ほどあります)、隠れたデータはゼロ。
画質はそのまま
多くのメタデータ削除ツールは画像を再エンコードするので、処理するたびに少しずつ 画質が落ちていきます。PicScrub のやり方は違います。
ほかのツール
画質: 約 95%
PicScrub
画質: 100%
たとえるなら、ほかのツールは付箋をはがすために書類をコピーし直します。 PicScrub は付箋だけをそっとはがして、原本をそのままお返しします。
アーキテクチャで守るプライバシー
「画像は端末から出ません」というのは約束ではなく、ツールの作りそのものです。 写真を受け取るサーバーはありません。裏でこっそりアップロードすることもありません。 コードはあなたのブラウザの中で動いています。
つまり、こちらが見たいと思っても、あなたの写真を見ることはできません。 プライバシーを守っているのは規約ではなくアーキテクチャです。
コードはすべてオープンソースです。画像に何が起きているのかを自分の目で確かめたり、 セキュリティを監査したり、自分で動かしたりできます。
できないこと
PicScrub はたいていの場面でうまく動きますが、技術的にどうしても避けられない 制約もあります。
HEIC ファイルはサイズが変わりません
HEIC は MP4 と同じ ISOBMFF コンテナを使っており、内部の多くのオフセットが 正確なバイト位置に依存しています。バイトを取り除くとファイルが壊れてしまいます。 そこでメタデータをゼロで上書きします。中身の個人情報は失われますが、 ファイルサイズは小さくなりません。
メーカー独自の RAW 形式は JPEG で返ります
CR2、NEF、ARW といった形式は仕様が公開されておらず、メーカーごとに異なります。 ファイルを壊す危険を冒すより、埋め込まれた JPEG プレビュー(多くのカメラが フル解像度で入れています)を取り出して、そちらをきれいにします。 DNG は仕様が公開された TIFF 構造を使っているため、全面的に対応しています。
カラープロファイルは初期設定では残ります
ICC カラープロファイルも技術的にはメタデータですが、削除すると色味が変わることがあります。そのため画像にプロファイルがある場合、「カラープロファイルを残す」は最初からオンになっています。プロファイルも削除したいときはチェックを外すか、picscrub ライブラリの preserveColorProfile オプションで制御できます。
形式ごとの詳細
画像形式によってメタデータの持ち方は違います。JPEG で通用する方法が PNG や SVG に 使えるとは限りません。形式ごとに詳しい解説を用意しています。
開発者の方へ
PicScrub はオープンソースのライブラリとしても公開しています。TypeScript に 完全対応しているので、自分のプロジェクトに組み込むことも、コードに貢献することも できます。