画像情報ビューア はブラウザ内で画像を開き, ファイルの正体を表示する: ファイル名, フォーマット, 幅と高さ, 人間可読のファイルサイズ, アスペクト比, メガピクセル, JPEG なら EXIF ブロック: カメラ, 撮影日時, ISO, 絞り, シャッター, 焦点距離, GPS 位置. ファイルはアップロードされない; ローカルで読み取り, ブラウザがデコードするため, ページ読み込み後はオフラインでも動く. 本記事は 1 枚の写真 photo.jpg, 4032 x 3024 の JPEG, 3.00 MB を, ツールが出力する全パネルに連れ, 画面に何が出るか(出ないか)を決める 5 つの動作で締める.
ファイルパネルが表示するもの
ファイルパネルはデコード済み画像と File オブジェクトから 6 行を出力する. フォーマット行は MIME タイプを読み, JPEG, PNG, WebP, GIF, BMP, SVG, AVIF, TIFF, HEIC, HEIF のラベルに対応させ, タイプが無いときは大文字のファイル拡張子に, さらに Unknown にフォールバックする. 寸法はデコード済みビットマップから来る: ブラウザが naturalWidth 4032 と naturalHeight 3024 を報告し, ヘッダに書いてある値ではない. サイズ行は 1 KB 未満で裸のバイト, 1 MB 未満で小数 1 桁の KB, それ超で小数 2 桁の MB を出力し, 3145728 バイトのファイルは 3.00 MB となる. アスペクト比行は両辺を最大公約数で割り, 4032 と 3024 の公約数は 1008 で, 生の組ではなく 4:3 を出す. メガピクセル行は 2 つの寸法を掛け, 小数 1 桁で 12.2 MP とする. このファイルを縮めたいなら 画像コンプレッサ は同じローカル優先で, 保存前にバイト削減分を表示する.
なぜ EXIF セクションは JPEG のみ
EXIF パースはファイルタイプが image/jpeg のときのみ始まる. パーサは画像開始マーカーから JPEG マーカーをたどり, 先頭 6 バイトが Exif と 2 つのゼロバイトである APP1 セグメントを探し, それから TIFF ヘッダを確認する: バイト順マーカー, マジック 42, 最初の IFD へのオフセット. どれかが欠けると止まり, パネルは EXIF 不在の注記を出す. 他の全フォーマットではツールはパースを完全にスキップし, 別の注記 "EXIF data is only available in JPEG images" を表示する. コンテナが技術的にメタデータを持ち込んでもだ. 走査はスキャン開始マーカーで止まる. 画像データが始まれば, もう読むメタデータが無いから.
タグの読み方
メイン IFD は基本タグを持つ: メーカー, モデル, 方向, 解像度, 撮影日時, 加えて露出タグのフォールバックセット. 2 つのポインタタグがカメラデータを持つサブディレクトリを開く: タグ 8769 は Exif IFD を指し, 実カメラはここに露出時間, F 値, ISO スピード, 焦点距離を書き, IFD0 のフォールバックを仕様値で上書きする; タグ 8825 は GPS ディレクトリを指し, 緯度経度の参照文字と度分秒の値が入る. 方向値 1 から 8 は Normal から Rotate 90 CW までのラベルに対応し, 範囲外の値は生の値付きの不明ラベルを出力する. ISO スピードは多くのカメラでペアとして書かれるため, ツールは最初の非ゼロ項を採用し, 本写真では 200. カラースペースタグは値 1 で sRGB, それ以外は Adobe RGB を出力し, IFD が切れていてもループは黙って止まるだけで例外を投げない.
シャッター, 絞り, 焦点距離
露出 3 行は表示前に整形される. 絞りは f/ に F 値を付け, 2.8 は f/2.8. シャッターは秒の露出時間を受け, 1 未満は逆数を丸めた分数で, 0.04 は 1/25s. 1 以上は 2s の形で出力し, 保存値がゼロまたは負ならそのまま出す. 焦点距離は数字と mm を付け, 35 mm 単焦点は 35 mm. 本例は Canon EOS R6, 日時 2026:07:14 09:30:00, 方向 6, パネルは ISO 200, f/2.8, 1/25s, 35 mm を読む.
GPS が地図リンクになるまで
GPS ディレクトリは各座標を度, 分, 秒の 3 つの有理数と参照文字で持つ. ツールは 60 で割った分と 3600 で割った秒を足して十進度数に変え, 北緯 31 度 14 分 36 秒は 31 + 14/60 + 36/3600 = 31.243333, 東経 121 度 28 分 47 秒は 121.479722 となる. どちらも小数 6 桁と文字で出力. 2 つの値の下に View on map リンクが Google Maps へ張り, URL 生成時, 南緯は緯度を, 西経は経度を負に返し, 南半球または西半球の座標が正しい側に落ちる. 共有前に別のコンテナへ変えたいなら, 画像コンバータ はローカルで再エンコードし, 目標フォーマットを選べる.
ツールが決してしないこと
最後に境界. 画像は決してアップロードされない. プレビューはローカルの object URL で, 新しいファイルを読み込んだとき, またはコンポーネントがアンマウントしたときに取り消され, 機械の外へ出るリンクは任意の地図リンクの 1 つだけ. EXIF セクションはメーカー, モデル, 撮影日時, ISO, 焦点距離, GPS のいずれか 1 つでも在る時だけ現れ, メタデータ除去済みの JPEG では寸法行と EXIF 不在の注記が出力され, 空のグリッドではない. ブラウザがデコードできなければ, パネルは空のアップロード状態へ戻る. ここから 同じファイルをリサイズし, バイト数の意味を確認し, 共有前にクロップし, アスペクト比を手計算し, または同じローカル画像から アプリアイコンを生成できる.