# EXIF Viewer

> 写真のEXIFメタデータを丸ごと表示。カメラ、レンズ、露出、使用ソフト、GPS座標まで全タグをブラウザ内で解析します。アップロードなし、地図の埋め込みもなし。

- URL: https://bytescope.dev/ja/exif-viewer/
- Locale: ja · Also: [en](https://bytescope.dev/en/exif-viewer.md) · [zh-Hant](https://bytescope.dev/zh-Hant/exif-viewer.md)
- Runs: ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

カメラやスマホが書き出すJPEGには、必ずEXIFというメタデータの塊が入っています。たいていのビューアが見せるのはそのうち4つか5つのフィールドだけですが、このページは全部並べます。まずは機材のグループ。ボディの `Make` と `Model`、レンズの `LensModel`、その間に挟まるファームウェアやアプリのバージョン。送られてきた1枚について本当に知りたいこと — 2台のうちどちらで撮ったのか、35mm単焦点かキットズームか、出品ページが言っているカメラで実際に撮られたのか — は、だいたいここで片が付きます。

2つめは露出のグループで、写真をやっている人がタグビューアを開く理由はほぼこれです。`ExposureTime`・`FNumber`・`ISO` が横並びになり、隣に `FocalLength` と `DateTimeOriginal` が並びます。`1/200 s`、`f/2.8`、`ISO 1600` をまとめて読めば、なぜノイジーなのか、連写のうち1枚だけなぜ甘いのかが見えてきます。しかも撮影日時は、コピーや再保存でファイルの日付が書き換わっても生き残る唯一の日付です。

3つめは地味に効いてくるグループです。`Software` や処理系のフィールドには「最後にこのファイルを書いたのは何か」が残るので、写真のほうから「Lightroomを通りました」「スマホの美肌モードです」「スクリーンショットです」「AIで拡大しました」と言い出すことがあります。編集ソフトはサムネイルも埋め込んでいくので、古いサムネイルのほうにトリミング前の画面が残っていることさえあります。べつに秘密ではないのですが、自分が渡していると気づいていない情報である点は変わりません。公開する前に一度見ておく価値はあります。

最後は位置情報で、ここは意図してこう作っています。GPS IFDがあれば、緯度経度を十進度でワンクリックコピー、南北東西の参照、カメラが記録していれば高度も表示します。そして地図は埋め込みません。よその地図を貼れば、ページが表示された瞬間に写真の座標を他人のタイルサーバーへ送ることになります。位置情報のプライバシーを扱うページでそれをやるのは、自分で前提を壊す行為です。場所を見たいときは、コピーした座標を自分が信頼している地図に貼ってください。そうすればリクエストを出すのはあなた自身で、しかも承知の上。写真そのものはブラウザから一歩も出ません。

## Limits

Does not edit or remove metadata (use remove-exif) and does not read metadata from PDFs or videos.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"exif-viewer"`; `result` is the on-screen EXIF snapshot below. This JSON includes precise GPS coordinates (signed decimal degrees and altitude in metres) when the photo's GPS IFD decoded them — that is an exact location. The file name, thumbnail bytes, and any base64 blob are omitted.

- `mime` (string | null) — Sniffed image MIME. `null` = sniff did not name a type.
- `byteLength` (number | null) — File size in bytes. `null` = size was not supplied.
- `make` (string | null) — Camera make. `null` = tag absent or EXIF not parsed.
- `model` (string | null) — Camera model. `null` = tag absent or EXIF not parsed.
- `lensModel` (string | null) — Lens model. `null` = tag absent or EXIF not parsed.
- `software` (string | null) — Software tag. `null` = tag absent or EXIF not parsed.
- `orientation` (number | null) — EXIF orientation 1–8. `null` = tag absent or EXIF not parsed.
- `dateTimeOriginal` (string | null) — Raw `"YYYY:MM:DD HH:MM:SS"`. `null` = tag absent or EXIF not parsed.
- `exposureTime` (string | null) — Formatted exposure (e.g. `"1/200 s"`). `null` = tag absent or EXIF not parsed.
- `fNumber` (string | null) — Formatted aperture (e.g. `"f/2.8"`). `null` = tag absent or EXIF not parsed.
- `iso` (number | null) — ISO speed. `null` = tag absent or EXIF not parsed.
- `focalLength` (string | null) — Formatted focal length (e.g. `"26 mm"`). `null` = tag absent or EXIF not parsed.
- `hasIccProfile` (boolean | null) — `null` = no EXIF block parsed; `false` = parsed, no ICC; `true` = ICC present.
- `gps` (object | null) — `null` = no GPS IFD (no GPS tags). When present: `latitude`, `longitude` (signed decimal degrees), `altitude` (metres). Each is `null` when that GPS tag was present but did not decode.
- `tags` (array of objects) — Raw tags in on-screen order, capped at 200. Each item: `ifd` (`"IFD0"` | `"Exif"` | `"GPS"`), `id` (number), `name`, `value`.
- `truncated` (boolean) — `true` when more tags exist than were copied.
- `totalCount` (number) — Real tag count, not the copied length.

## FAQ

### 写真にEXIFが1つも入っていないのはなぜですか？

すでに何かが消しているからです。メッセージアプリやSNSはアップロードされた画像を再圧縮し、その過程でメタデータを落とします。だからWhatsAppやMessenger、Instagram経由で届いた写真は、たいてい最初からきれいです。スクリーンショットはそもそもEXIFを持ちません — 画素を描いたのはOSで、説明すべきカメラもレンズも露出も存在しないからです。お絵かき系・デザイン系ツールの書き出しも同様。スキャンは3番目のケースで、スキャナはタイムスタンプと自分の `Software` 名だけを書くことがあります。タグが空なのは、たいていリーダーの失敗ではなく、そのファイルの来歴という事実です。

### ソフト名や処理系のフィールドからは何が分かりますか？

思っているより分かります。`Software` は最後に保存したものの名前なので、Lightroomを通ったこと、スマホのポートレートや美肌モードを使ったこと、スクリーンショットツールやアップスケーラーを経由したことが、写真の側から出てきます。関連するフィールドには、シーンモードが働いた、HDRで複数枚を合成した、撮影後に回転やリサイズをした、といった痕跡も残ります。カメラ系のフィールドと並べて見ると、単独のタグでは答えられない問いに答えが出ます — このファイルはセンサーを出たあと編集ソフトを通っているのか、そして送り主の説明とファイルの言っていることは一致しているのか。

### EXIFを読むために写真はアップロードされますか？

されません。ファイルはFile APIで開き、あなたのタブの中で動くJavaScriptが解析します。JPEGのマーカーsegmentをたどってEXIFのブロックを見つけ、タグを解く — 全部あなたのマシン上です。このページの裏に送信先のサーバーは存在せず、いちど開けばネットワークを切っても動きます。ここではそれが単なる建前ではありません。いちばん見たいタグ、つまりGPS座標や撮影日時、カメラのシリアル番号は、いちばん他人のサーバーに渡したくないタグでもあるからです。

### 位置情報をオフにしているのにGPSが入っているのはなぜですか？

位置情報の許可はアプリごとで、全体スイッチではありません。だから他のアプリには何も渡していないのに、カメラアプリだけはタグを書き続けている、という状態が普通に起きます。スマホのカメラには「位置情報を記録する」という独自の設定が奥のほうにあり、他の全アプリに位置情報を拒否したあとも生きていることが多いのです。見落としがちな原因がもう2つ。EXIFは再保存や共有のときにコピーされるので、先週編集した写真は生まれたときの座標を持ち続けます。人からもらった写真なら、その人の座標が入っています。確実な答えはファイル自体を見ることだけで、このページはそのためにあります。

### どのファイル形式に対応していますか？

実務上のEXIFはJPEGとTIFFヘッダを持つファイルの話で、このビューアが読むのもそこです。カメラやスマホから出てきた `.jpg` / `.jpeg`、それにカメラRAWの多くを含むTIFFコンテナ系。PNGやWebPも自前のコンテナにメタデータを入れられますが、実際にはほとんど入っていませんし、スクリーンショットに至ってはゼロなので、表が短いか空になるのは想定どおりです。iPhoneのHEICはEXIFを持っていますが、ブラウザがデコーダなしでは開けないHEIFコンテナの中です。いちどJPEGに変換すればタグも一緒に付いてきます。

## Related tools

- [Remove EXIF](https://bytescope.dev/ja/remove-exif.md) — この写真のメタデータを画質を落とさずに外せます。画素の再エンコードはありません。
- [Binary Diff](https://bytescope.dev/ja/binary-diff.md) — 二つのファイルを 1 バイトずつ比べられます。消す前と消したあと、など。
