EXIF 檢視器是一種工具,能解碼相機或手機拍攝時嵌入 JPEG 檔案中的結構化中繼資料,並顯示相機廠牌與型號、鏡頭、曝光時間、光圈值、ISO、拍攝時間戳記、影像尺寸,以及 GPS 座標等欄位。基於瀏覽器的檢視器會在當前分頁中於本機執行該解碼作業,讀取檔案的 APP1 區段、驗證 TIFF 標頭,並在不上傳任何位元組的情況下走訪有界限的 IFD0、Exif 與 GPS 目錄。由於它採用一份有文件記載的常用標籤白名單(方向、曝光、ISO、焦距、鏡頭型號、緯度、經度,以及一組少量的時間戳記與識別項),工具行為因此保持可預測:它只回報 JPEG 實際承載的內容,並刻意忽略專屬的製造商註記,而不是去猜測其含義。支援的檔案大小上限為 25 MiB;超出此限制,或任何採用非 JPEG 容器的檔案,皆不在支援範圍內,而是由其他類別的工具處理。

exif viewer explained
EXIF 檢視器解析: JPEG 中繼資料是如何被剖析的

EXIF 中繼資料實際位於 JPEG 內部的何處

JPEG 不僅僅是一串經過壓縮的像素資料。在標準的 SOI 標記之後,大多數相機會嵌入一個或多個 APP1 區段,而在其中一個區段內,存在著一個採用 TIFF 結構的小區塊。該區塊包含一個宣告位元組順序(小端序或大端序)的標頭、一個魔數,以及一串影像檔案目錄。第一個目錄 (IFD0) 帶有一般性資訊,例如相機廠牌與型號、寫入此檔案的軟體、像素尺寸,以及一個告訴檢視器該如何旋轉影像的方向標籤。從 IFD0 指出去會連結到 Exif 子目錄,其中包含拍攝時間相關欄位:原始拍攝時間戳記、修改時間戳記、曝光時間、光圈值、ISO 感光度、焦距,以及鏡頭型號。另一個指標則指向 GPS 子目錄,其中帶有緯度、經度、高度,以及解讀這些數值所需的半球參考。

TIFF 容器的結構雖然精簡,但規則也相當嚴格。欄位計數、位元組位移與標籤識別項必須彼此一致,否則剖析器便無法判斷某個欄位在哪裡結束、下一個欄位從哪裡開始。EXIF 檢視器一次走訪一個有界限的目錄,僅顯示它能依標準化標籤編號辨識出的欄位,這正是為什麼輸出表格既簡短又可預測,而不會被數百筆推測性的條目淹沒。

為何採用本機、基於瀏覽器的檢視器會改變隱私的計算方式

上傳一張照片以讀取其中繼資料,是個停下來仔細想會覺得很奇怪的工作流程:檔案會離開你的電腦,在遠端伺服器上停留足夠長的時間以供剖析,並且在過程中可能被快取或留下記錄。對於一般性的瀏覽而言這沒什麼問題,但對於那些 GPS 區塊中可能含有住家地址、背景中可見工作場所,或單純是你不想交給第三方的檔案,這種方式就不合適了。基於瀏覽器的 EXIF 檢視器繞過了這個問題,改在當前分頁中讀取位元組。不會傳輸任何資料;剖析後的數值會留在頁面中,直到分頁關閉為止。

這種純本機的特性,也是讓檢視器得以積極套用安全限制的原因。由於位元組就在手邊,工具能在任何數值被呈現之前,先拒絕格式錯誤的區段長度、含有過多條目的目錄、指向選定檔案外部的位移,以及不支援或過大的欄位計數。當你能掌控整個讀取路徑時,這些檢查的成本很低,並且能防止剖析器被誘使讀取超出緩衝區結尾的內容,或是把垃圾位元組解讀成欄位。

如何使用 EXIF 檢視器檢查 JPEG 的中繼資料

  1. 在瀏覽器中開啟 EXIF 檢視器。無需安裝、登入或擴充功能。
  2. 從你的電腦中選擇一個本機 JPG 或 JPEG 檔案。支援的大小上限為 25 MiB;更大的檔案,或儲存於其他容器的檔案,皆不予接受。
  3. 等待剖析器定位第一個有效的 APP1 Exif 區段、驗證嵌入的 TIFF 標頭,並走訪有界限的 IFD0、Exif 與 GPS 目錄。
  4. 檢視簡明表格中已辨識出的列。請特別留意 GPS 緯度、經度,以及用來告訴你數值是在赤道以北或以南、本初子午線以東或以西的半球參考。
  5. 決定要如何處理該檔案。如果你打算分享它,請移除任何你不想公開的位置欄位;如果你需要不支援的格式、專屬的製造商註記,或具備鑑識等級的證據,請改用一款持續維護的桌面工具。

這條五步驟的路徑就是整個工作流程。檢視器不會修改檔案、不會重新命名,也不會將中繼資料報告寫回磁碟 —— 它只是呈現它所找到的數值。

已辨識白名單所涵蓋的欄位

EXIF 規範定義了數百個標籤,但一個可攜且可預測的讀取器,只會聚焦於多數相機實際輸出的那些欄位。下表摘要列出檢視器所回報的常見欄位,並依其所屬目錄分組。特定檔案可能僅包含這些列中的某個子集合;缺少的標籤僅代表相機並未寫入該資訊。

目錄欄位它能告訴你什麼
IFD0廠牌 / 型號相機製造商與產品名稱
IFD0軟體寫入此檔案的應用程式或韌體
IFD0方向檢視器應如何旋轉影像以供顯示
IFD0像素尺寸以像素為單位的寬度與高度
Exif原始日期時間 / 修改日期原始與修改後的拍攝時間戳記
Exif曝光時間以有理數表示的快門速度(例如 1/250)
Exif光圈值以有理數值表示的光圈
ExifISO 感光度ISO 感光度設定
Exif焦距以有理數值表示的鏡頭焦距
Exif鏡頭型號由相機寫入的鏡頭識別項
GPS緯度 / 經度以 DMS 格式儲存,並附有 N/S 與 E/W 參考的座標

有理數值在 TIFF 區塊內是以兩個整數(分子除以分母)的形式儲存,這就是為什麼曝光與光圈會以分數而非小數的形式回傳。GPS 座標以相同的分數格式儲存為度、分、秒,並且需要其半球參考才能正確標示正負號:一個帶有南向參考、數值為 40 的緯度,代表南緯 40 度,而非北緯。

剖析器如何安全地讀取檔案

深入底層機制有助於說明為何檢視器會表現出這樣的行為。在 JPEG 的 SOI 標記之後,剖析器會逐區段掃描,直到找到一個識別項拼出 Exif 標頭的 APP1 區段。接著它會檢查 TIFF 位元組順序標記(小端序為 II,大端序為 MM)、驗證魔數 42,並讀取第一個影像檔案目錄的位移。從該處開始,它會逐一走訪條目:一個 SHORT 計數會告訴它接下來有多少個標籤,每個標籤佔 12 個位元組 —— 一個 2 位元組識別項、一個 2 位元組資料類型、一個 4 位元組計數,以及一個 4 位元組的內嵌值,或指向儲存於區段其他位置的較長資料的位移。

在每一個步驟中,剖析器都會強制執行邊界檢查。會將讀取位置推向檔案結尾之外的區段長度會被拒絕。會爆增為數千個條目的計數會被拒絕。指向區段外部的位移會被拒絕。不支援的資料類型與專屬的製造商註記區塊會被略過,而不是被解碼。這項紀律遵循 CIPA Exif 2.3 規格,並透過八個固定核心識別項與類型的測試檔案,獨立與 ExifTool 的官方標籤表 進行交叉比對。

何時桌面工具才是正確的選擇

有界限的瀏覽器剖析器,是檢查單一 JPEG 中常見且標準化欄位的正確工具。但它並非適用於所有情況的萬靈丹。製造商註記 —— 由 Canon、Nikon、Sony、Apple 等廠商所寫入的專屬區塊 —— 內含關於對焦、鏡頭修正、場景模式與處理的豐富資訊,但其版面配置並無公開文件記載,並且會在不同的韌體版本之間變動。安全的讀取器不會去猜測其含義。同樣地,RAW 格式 (CR2、NEF、ARW、RAF)、HEIC、PNG、WebP、影片容器,以及完整的 XMP 或 IPTC 區塊,皆位於 JPEG Exif 區段之外,因此需要功能更強大的工具。

在這些情況下,ExifTool 仍是參考的實作方案:它能理解專屬的製造商註記、可批次匯出整份中繼資料清單、保留原始檔案,並從經過維護的命令列執行。每當問題從「這張 JPEG 寫了什麼?」轉變為「這張影像究竟可能說些什麼,而且我能否將其視為可信的證據?」時,就該採用它。如需在剖析各欄位後深入解讀每個欄位的指南,請參閱這份關於檢視一張照片的 EXIF 資料並逐一讀取每個欄位的說明。

在不過度揭露的前提下讀取 GPS 區塊

GPS 中繼資料是 JPEG 可承載的所有欄位中最為敏感的一項。由手機記錄下的一組座標,能將一張照片定位到真實地址的幾公尺範圍內,而該位置會在每次檔案被轉傳或上傳時跟著一起走。檢視器會使用半球參考,把所儲存的度分秒數值轉換為帶正負號的十進位度數,但這種轉換僅是純粹的算術運算 —— 頁面本身無法判斷轉換後的位置是否為你樂於揭露的位置。

在分享一張照片或一份中繼資料報告之前,請先檢視 GPS 列與任何內嵌、看似地址的欄位。若數值精確且你不想讓它們被看見,請在傳送檔案前移除其 Exif 區段、選擇一個會在上傳時移除中繼資料的平台,或分享一份重新編碼的副本。依據 CIPA Exif 規格,這些標籤皆非必要,一個檔案可能完全沒有、部分擁有,或全部擁有這些標籤 —— 而就隱私角度而言最令人沮喪的是,它可能僅包含 GPS 列而沒有其他內容。

EXIF 中繼資料是關於一個檔案的描述性資料,而非關於該檔案所描繪之世界的任何證明。時間戳記可以被編輯、相機可能出錯、GPS 定位可能飄移,且大多數社群與通訊平台在資料送往其伺服器的過程中會移除中繼資料。請將檢視器所產生的表格視為理解 JPEG 內部所含內容的起點,並將關於著作權、所有權、拍攝時間與地點的權威性聲明,保留給專為鑑識工作而設計的工具與流程,依據 CIPA Exif 2.3 規格 中所記載的中繼資料限制辦理。