← 照片指南

EXIF 資料儲存在照片的哪裡?(JPEG、PNG、HEIC)

EXIF 實際上住在照片檔案的哪個位置?APP1 標頭、IFD 樹狀結構、位元組偏移量,以及 JPEG、HEIC、PNG、TIFF 和 WebP 各自如何儲存它。

簡短回答: EXIF 儲存在影像檔案本身之內,而非一個獨立的附屬檔案中。在 JPEG 裡,它住在 APP1 標記區段,一個從檔案開頭附近的位元組 0xFFE1 開始的標頭區塊,標籤以 TIFF/IFD 樹狀結構排列在其中(IFD0、一個 Exif 子 IFD,以及一個 GPS IFD)。在 HEIC 中,同樣的標籤位於容器的中介資料盒(boxes)裡;在 PNG 中,它們可以住在一個 eXIf 區塊裡;TIFF 則原生儲存它們。因為資料是嵌入式的,所以每當你複製或傳送照片時,它都會隨之傳遞。把任何照片拖進我們的 EXIF 檢視器 就能看到裡面有什麼,不會上傳任何東西。

人們常以為中介資料住在手機上某個隱藏的資料庫裡,或是照片旁邊的一個小檔案裡。其實不然。「何時、何地、如何」是直接寫進影像檔案的位元組中的,位於前段一個保留的區域內。這份指南說明那個區域在哪,以及當你編輯或分享照片時會發生什麼事。

簡短版:它在檔案裡,靠近開頭

開啟任何直接來自相機的 JPEG,看看開頭那幾百個位元組。在影像起始標記(0xFFD8)之後,你最先碰到的東西之一就是 APP1 標記區段,它容納了整個 EXIF 區塊。被壓縮的像素則在它之後。所以一個典型的相機 JPEG 是這樣排列的:0xFFD8 起始標記、容納 EXIF 的 0xFFE1 APP1 標記、選用的標頭(APP2 ICC 描述檔、APP13 IPTC、XMP)、像素資料,然後是 0xFFD9 結束標記。因為 EXIF 位於靠近開頭的標頭中、與像素分開,所以一次乾淨的 EXIF 編輯不會重新壓縮影像;工具只會重寫標頭區域。

IFD 樹狀結構:IFD0、Exif 子 IFD、GPS IFD

APP1 區段以 0xFFE1、一個兩位元組的長度,以及識別碼 Exif\0\0 開頭。緊接在那之後,酬載以一個小小的 TIFF 標頭 開始:EXIF 在內部其實是一個嵌在 JPEG 裡的小型 TIFF 檔案。那個標頭聲明了位元組順序(II 小端序或 MM 大端序)以及指向第一個標籤目錄的偏移量。

從那裡開始,標籤被組織成一棵 IFD(Image File Directories,影像檔案目錄)的樹,而非一個扁平的清單。每一個都有它的職責:

  • IFD0(「第 0 個」或「TIFF」目錄):相機與影像層級的欄位,像是 Make、Model、Software、Orientation 和 Copyright。它也容納兩個指標標籤,通往下方的子目錄。
  • Exif 子 IFD:拍攝當下的技術資料。DateTimeOriginal、曝光設定、鏡頭、ISO、色彩空間。
  • GPS IFD:緯度、經度、海拔,以及由 GPS 衍生的時間戳記,只有在記錄了位置時才會存在。
  • IFD1(「第 1 個」目錄):相機產生的一張嵌入式縮圖。

讀取器會走訪這棵樹:從 TIFF 標頭開始,跳到 IFD0,循著 Exif 指標取得拍攝設定,再循著 GPS 指標取得位置。我們的 EXIF 檢視器 正是這麼做的,並把每一個目錄以各自的表格陳列出來;EXIF 標籤參考 則是每一個欄位的完整字典。能塞進四個位元組的數值會內嵌在標籤項目本身;較大的,像是一個 GPS 座標,則儲存在區段中的其他地方,而項目裡保留一個指向它們的位元組偏移量。

其他格式如何儲存同樣的標籤

EXIF 標籤在各格式間大致相同。不同的是標籤被收進的那個容器。

  • JPEG / JPG:上述的 APP1 標記區段。
  • TIFF:原生儲存 EXIF。一個 TIFF 檔案本身就是一個 IFD 的結構,所以 EXIF 不是外加上去的,它是基礎格式的一部分。JPEG 的 EXIF 是這個 TIFF 佈局借來的一份副本。
  • HEIC:自 iOS 11 以來的 iPhone 預設格式。它的 HEIF 容器由巢狀的「盒(boxes)」構成,EXIF 標籤住在一個項目中介資料盒裡,而非 JPEG 式的標記中。同樣的標籤,不同的收納方式。
  • PNG:可以在一個專屬的 eXIf 區塊中夾帶 EXIF;較簡單的工具有時改用 tEXtiTXt 文字區塊。許多網頁匯出的 PNG 完全不帶。
  • WebP:把 EXIF 儲存在其 RIFF 容器內的一個 EXIF 區塊中。

標籤參考詳細涵蓋了 各格式的編輯注意事項

為什麼「嵌入式」很重要:中介資料隨檔案傳遞

因為 EXIF 住在檔案內部,所以它跟著照片走到檔案所到的每一個地方。把 JPEG 複製到 USB 隨身碟、附加到電子郵件,或丟進一個共享資料夾,GPS 座標和拍攝時間都會一起過來。這正是為什麼中介資料對舉證如此有用、對隱私又如此有風險:證據和洩漏,都是內建其中的。

這也解釋了為什麼移除 EXIF 不是一行指令就能刪除的。標籤交織在檔案的標頭結構裡,所以清除它們意味著在不含那個區域的情況下重寫檔案。我們的 EXIF 移除工具 在你的瀏覽器中做這件事。

當你編輯、截圖或上傳時會發生什麼

因為 EXIF 是檔案的一部分,所以什麼會留下來,取決於檔案是否被重新編碼:

  • 複製、移動、重新命名:位元組不變,所以 EXIF 被保留。
  • 裁切、旋轉、輕度編輯:大多數編輯器會保留區塊,只更新尺寸和方向標籤。有些會重寫它;事後用 檢視器 檢查。
  • 螢幕截圖:螢幕截圖是一張全新的影像,帶有它自己最精簡的 EXIF,沒有任何原始影像的相機或 GPS 資料。它實際上等同於一次中介資料清除。
  • 上傳到社群平台:Instagram、Facebook、X 和 WhatsApp 在上傳時透過重新編碼清除 EXIF。像電子郵件、Dropbox 和 AirDrop 這類檔案分享工具則保留它。

關於 EXIF 記錄了什麼、以及人們為何查看它的更宏觀全貌,請參閱 什麼是 EXIF 資料

常見問題

EXIF 是儲存在照片旁邊的一個獨立檔案裡嗎? 不是,它嵌入在影像檔案本身之內。(有些專業 RAW 工作流程會使用 .xmp 附屬檔,但 JPEG、HEIC、PNG 或 TIFF 中的標準 EXIF 是住在影像裡面的。)

APP1 區塊和 IFD 之間有什麼差別? APP1 是 JPEG 中容納 EXIF 的那個欄位。IFD(IFD0、Exif 子 IFD、GPS IFD)則是那個欄位內部的目錄樹。

結論

EXIF 不是被保存在一個隱藏的應用程式資料庫或附屬檔裡。它嵌入在影像中:在 JPEG 裡,那意味著靠近開頭的 APP1 標記區段,以 TIFF/IFD 樹狀結構(IFD0、Exif 子 IFD、GPS IFD)構成。HEIC、PNG、WebP 和 TIFF 則把同樣的標籤儲存在它們各自的容器裡。因為它是內建的,所以中介資料隨每一份副本一起傳遞。

想看你照片的中介資料住在哪:EXIF 檢視器。想在分享前清除它:EXIF 移除工具。想知道每一個標籤的含義:EXIF 標籤參考。全部在你的瀏覽器中執行,不會上傳任何東西。

試試這些工具

直接在瀏覽器中為照片加上戳記,或安裝 iOS 應用程式,搭配 GPS 與原子鐘即時拍照。

Download on theApp Store
開啟網頁工具 →EXIF 檢視器 →