LOG-003BUILD / TOOL

Image Metadata Cleaner
Build note.

その画像、そのまま共有して大丈夫?

SNSやチャットへ画像を送る前に、見えない位置情報や端末情報を確認し、対応メタデータを削除できるツールを作った。

画像には、見えない情報が残る。

スマートフォンやカメラで撮影した画像には、見た目だけでは分からない情報が含まれていることがある。

  • GPS位置情報
  • 撮影日時
  • 端末メーカー・機種
  • 使用ソフトウェア
  • 作成者・著作権
  • EXIF、XMP、IPTCなどのメタデータ

SNS側で削除される場合もあるが、送信前の元ファイルに何が入っているかは自分で確認しにくい。そこで、検査 → 削除 → 再検査までを一つの画面で行えるようにした。

まず、何が残っているか見せる。

単に「Exifを削除しました」と表示するだけでは、何が危険だったのか、実際に消えたのかが分からない。

Image Metadata Cleanerでは、画像を選ぶと次の5項目に分けて結果を表示する。

  1. 位置情報(GPS)
  2. 撮影日時
  3. 端末情報
  4. 作成者・著作権
  5. メタデータ形式

GPSは存在だけを知らせ、緯度・経度そのものは画面に表示しない。端末情報や日時は、共有前の判断に必要な範囲で表示する。

ブラウザ内で画像を作り直す。

対応メタデータの削除には、画像をブラウザで読み込み、Canvasへ描画して新しいファイルとして書き出す方法を採用した。

JPEG / PNGを選択
  ↓
メタデータを検査
  ↓
ブラウザで画像を正しい向きに描画
  ↓
新しい画像として書き出し
  ↓
出力ファイルを再検査
  ↓
端末へダウンロード

JPEGは撮影時の向きがEXIFに依存することがあるため、単純にデータ領域だけを削るのではなく、正しい向きで描画してから画質95%で再生成する。PNGは透過を維持する。

外部へアップロードしない。

画像はプライバシーを守るために処理するものなので、その画像自体を別のサーバーへ送ってしまっては意味が薄い。

検査、再生成、再検査はすべて利用者のブラウザ内で行う。7okenmのサーバーへ画像を送信せず、CookieやLocalStorageにも保存しない。

No upload. No storage. Local processing.

この仕組みは、将来作るスクリーンショットの自動マスクツールにもつながる。

検出できる範囲を誇張しない。

ファイル形式やアプリによって、メタデータの保存方法は異なる。そのため「すべての個人情報を完全削除」とは表現していない。

このツールが検出対象にしているのは、JPEG・PNG内の対応するEXIF、XMP、IPTC、PNGテキストなど。画像そのものに写り込んだ住所、人物、通知、画面上の文字や、ダウンロード後のファイル名までは消えない。

画面にもこの制限を明記し、対応メタデータを削除という言葉で範囲を示した。

テストしてから公開する。

メタデータ解析部分は表示コードから分離し、次の自動テストを追加した。

  • JPEGのEXIFからGPS・日時・端末・作成者を検出
  • PNGテキストから作成者を検出
  • メタデータのないJPEGをCLEARと判定
  • 未対応形式を拒否

Astroの本番ビルド後、実際のiPhone画像でもGPS、撮影日時、端末情報の検出を確認した。削除後の画像をもう一度読み込み、対応項目がCLEARになるところまで確認して公開した。

ツールから、仕組みへ。

PDF First Pageに続く2本目として、トップページとTools一覧へ追加。ページ固有のSEO情報、WebApplication 構造化データ、サイトマップも設定した。

これで、7okenm Toolsに「ファイルを外へ出さず、ブラウザだけで処理する」という共通の考え方が見え始めた。次は画像内のメールアドレスや電話番号を検出して隠す、Screenshot Redactへ発展させたい。

OPEN IMAGE METADATA CLEANER↗VIEW ALL NOTES↗