gazou-compressor.jp

EXIF(位置情報)を安全に消す方法と自動回転の完全ガイド

共有前にEXIFを削除し、向きは実回転で保存——これだけで大半の事故は防げます。 /exif-strip に写真を投げると、GPSや端末情報は消え、6/8/3 などの Orientation 指定もピクセルを回して統一できます(ブラウザ内処理)。

関連:色と形式の最短ルール
HEIC/HEIFの持ち込みは HEICのWeb最適化、sRGBへの正規化は sRGB変換ガイド を参照。

要点(TL;DR)

  • 共有・提出前はEXIF削除、向きは実回転で保存。
  • 写真=WebP 80–85(互換はJPEG 85)/ロゴ・UI=PNG/WebP Lossless。
  • 公開前に /compare で1:1確認(向き・見え方・容量)。

1. EXIFの中身と危険性

  • 位置情報(GPS 緯度経度・高度・撮影時刻)
  • 端末情報(機種名・OS・カメラ設定・シリアルの類)
  • Orientation(向きフラグ)/サムネイル/撮影アプリ情報 など

特にGPSは個人情報に直結します。外部共有前に必ず削除しましょう。

2. Orientation と“実回転”の違い

Orientation は「向きフラグ」を示すだけで、ピクセルは回りません。アプリ依存で見えが崩れるため、 公開用はピクセルを回して保存(実回転)し、フラグは「未使用」にするのが安全です。

Orientation値意味
1通常(0°)
6右回転 90°(時計回り)
8左回転 90°(反時計回り)
3180° 回転

3. 最短フロー(当サイトの /exif-strip を使う)

  1. /exif-strip を開く(ブラウザ内処理/サーバ保存なし)。
  2. 写真をドラッグ&ドロップ → Orientation を検出して実回転 → EXIF を除去。
  3. 用途に応じて保存:写真=WebP 80–85(互換にJPEG 85)、ロゴ/図=PNGまたはWebP Lossless。

4. CLI/コードレシピ(実回転+EXIF削除)

A. ImageMagick

# JPEG: EXIF方向に従って実回転し、EXIFを除去(sRGB統一)
magick input.jpg -auto-orient -strip -colorspace sRGB -quality 85 output.jpg

# PNG: メタを除去(必要に応じて)※方向は通常PNGで問題になりにくい
magick input.png -strip output.png

B. Sharp(Node.js)

import sharp from "sharp";

const src = sharp("input.jpg", { unlimited: true })
  .rotate()                         // EXIF Orientationを適用して実回転
  .withMetadata({ orientation: 1 }) // 正規化(フラグを消す方向)
  .toColourspace("srgb");           // sRGBへ

await src.webp({ quality: 82, effort: 5 }).toFile("out.webp");   // 写真
await src.png({ compressionLevel: 9 }).toFile("out.png");        // ロゴ/図

C. exiftool(メタ除去のみ)

※ exiftool はピクセルを回さないため、実回転は ImageMagick/Sharp 側で行います。

# すべてのメタを削除(元ファイルを上書き)
exiftool -overwrite_original -all= input.jpg

# ICCを保持したい場合は sRGBに変換してから-strip するのが安全(上のImageMagick例を推奨)

5. よくある落とし穴

  • フラグだけリセットして実回転しない → 一部アプリで横向き表示。必ずピクセルを回す
  • メタの取り残し(XMP/サムネ) → -strip または -all= を適用し直す。
  • ICC削除で色ズレ → 先にsRGBへ変換してから -strip が安全。
  • Live Photo(動画成分) → 静止画フレームのみ抽出して扱う(詳細: HEIC最適化)。

6. 公開前チェック(10項目)

  • GPS/端末情報が残っていない(サンプルを exiftool で検査)。
  • Orientation フラグなし、実回転済み。
  • sRGBで色管理を統一(ICC問題なし)。
  • 写真=WebP 80–85/互換JPEG 85、ロゴ/図=PNG or WebP Lossless。
  • CLSゼロ:width/height 明示、広告はプレースホルダで高さ確保。
  • 配信は srcset/sizes が実表示幅に一致。
  • Before/After を /compare で1:1確認(向き・画質・容量)。
  • 個人情報(顔/ナンバー等)の必要十分なマスキング。
  • キャッシュ更新は指紋(v2等)で担保。
  • 本番RUMでLCP/INP/CLSに悪化がない。

7. まとめ:EXIF削除 × 実回転が最短解

まずは /exif-strip で一括処理。必要に応じて CLI で自動化し、配信は sRGB 統一+適切な形式に。これが“速く・崩れず・安全”な最短ルートです。

gazou-compressor.jp 編集部
画像圧縮・変換・背景除去などの実践テクニックと、Webで“速く・軽く・崩さない”ためのノウハウを発信しています。

関連記事