# Remove EXIF

> 移除 iPhone HEIC、JPEG、PNG、WebP、AVIF 照片的位置、EXIF 與 GPS。可批次處理、全程在瀏覽器完成，像素不重新編碼，內容憑證（C2PA）預設保留，要清除才需要勾選。

- URL: https://bytescope.dev/zh-Hant/remove-exif/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/remove-exif.md) · [ja](https://bytescope.dev/ja/remove-exif.md)
- Runs: 檔案不會離開你的瀏覽器 — 全部在本機處理。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

這裡說的無損有精確、而且可以驗證的意思，所以先講 byte 上發生了什麼。一個 JPEG 是一串 marker segment，中繼資料住在它自己的 segment 裡：`APP1` 裝 EXIF（相機、時間、GPS），`APP13` 裝 IPTC 和 Photoshop 區塊，`APP2` 可能裝 ICC 描述檔。清乾淨的做法就是走過這一串、把帶中繼資料的 segment 丟掉，然後把壓縮過的 scan 資料原封不動抄過去。經過熵編碼的影像資料不會被解碼、不會重新量化、不會重新編碼；它是逐 byte 抄過去的，所以出來的像素跟進去的像素逐位元相同。不是「看起來一樣」。是相同。

幾乎所有其他的中繼資料清除工具做的是反過來的事：把你的 JPEG 解碼，因為整個檔案都被丟掉了所以中繼資料也就沒了，再重新編一張新的出來。那確實會乾淨，代價是每做一次就付掉一代畫質——新的量化疊在舊的量化上、本來就不夠銳的邊緣開始出現區塊，而且產出的檔案常常比原檔還大。清兩次就付兩次。PNG 也是同一套 byte 層級處理：PNG 是一串 chunk，所以 `tEXt`、`iTXt`、`zTXt`、`eXIf` 被丟掉，`IDAT` 影像資料整段照抄。兩種格式都不重新壓縮。

整個資料夾的照片一次丟進來，一輪跑完，要一張一張下載或整包下載都可以。每個檔案都附上清除前後的中繼資料對照：找到了哪些標籤、清掉了哪些、還剩下什麼——因為「已移除中繼資料」這句話本身你沒辦法查證，而「可以查證」正是這頁存在的全部理由。想從另一條程式路徑再確認一次的話，把清過的檔案丟回 EXIF 檢視器看看。全部在你的瀏覽器裡執行：一個說要保護你照片隱私、但先要你把照片上傳到伺服器的工具，實在很難知道要怎麼信任它。

iPhone 拍的是 HEIC，網路上又常見 WebP、AVIF，所以這些也能清，只是做法不同，因為它們沒辦法像 JPEG 那樣直接切掉。HEIC 和 AVIF 把 EXIF、XMP 當成一個個 item 存放，檔案裡另有一張表，記著包含照片本身在內、每一個 item 的精確 byte 位置。刪掉一個 item，後面所有位置都會錯，所以這個工具什麼都不刪：直接在原地把中繼資料的 item 覆蓋掉，結構一點都不動。檔案大小完全不變，中繼資料換成空的、格式合法的替身，影像資料逐 byte 相同。WebP 則跟 PNG 一樣，一個 chunk 一個 chunk 切掉。只想清掉位置的話，有「只清位置」模式，保留拍攝時間和相機型號，只清 GPS。另外，原況照片（Live Photo）其實是兩個檔案：HEIC 靜態照加一小段 `.MOV`，兩邊都可能帶座標，影片那一半請用影片位置移除工具一起清。

會在意這件事的理由很無聊也很具體：在你家客廳拍的照片公開貼出去，通常就帶著你家客廳的座標，誤差幾公尺，還附上拍攝時間和那支手機。在二手平台上架一張在家拍的商品照、在興趣社團貼自己的狗、在論壇分享旅遊照——地址就搭在沒人會去讀的欄位裡一起出門，直到有人真的去讀。大平台會重新壓縮上傳的圖，中繼資料算是被順手清掉了；但直接傳檔的路徑不會：email 附件、雲端連結、Discord 和 Telegram 傳檔，任何以「檔案」形式交出去的東西都算。出門前先清一次。

## Limits

Does not remove metadata from PDF, video or Office files (use remove-video-location for MP4/MOV), does not support TIFF, GIF or RAW, and does not alter the pixels. HEIC and AVIF are overwritten in place, so the file size stays the same; content credentials (C2PA) are kept unless you choose to clear them.

## FAQ

### 移除 EXIF 會不會讓畫質變差？

不會，而且值得把原因講清楚。中繼資料和像素住在檔案的不同地方：JPEG 的像素是經過熵編碼的 scan 資料，PNG 的像素是 `IDAT` chunk。這個工具兩者都不會交給解碼器——它把它們原樣抄到輸出，只是不寫周圍那些中繼資料 segment。沒有解壓縮，所以沒有重新壓縮，所以根本沒有一代畫質可以掉。輸出會小幾 KB，如果 EXIF 裡還帶著一張嵌入縮圖，那就是小幾百 KB，而每一個像素都跟原來逐位元相同。想自己證明的話，把兩個檔案丟進 binary diff 比一比：動過的 byte 只有那些「描述照片」而不是「就是照片」的 byte。

### 到底清掉什麼、留下什麼？

清掉：`APP1` 裡的 EXIF（相機、鏡頭、曝光、`DateTimeOriginal`、GPS、相機序號）、`APP13` 裡的 IPTC 與 Photoshop 區塊、XMP、JPEG 的註解 segment，以及跟 EXIF 一起嵌進來的縮圖；PNG 則清掉 `tEXt`、`iTXt`、`zTXt`、`tIME`、`eXIf` chunk。預設留下：ICC 色彩描述檔（JPEG 的 `APP2`，PNG 的 `iCCP` 與色彩相關 chunk）。最後這項是個判斷題，理由是：ICC 描述檔不會透露你是誰、用什麼相機、站在哪裡，但拿掉它會改變照片看起來的樣子——Display P3 的照片被當成 sRGB 畫出來，肉眼就看得出變得比較平。隱私工具不該默默改掉你的顏色。真的想連描述檔一起清，有一個開關給你。其他格式的道理一樣：WebP 會清掉 `EXIF` 和 `XMP ` chunk，HEIC 與 AVIF 則是把 EXIF 和 XMP 的 item 原地覆蓋。唯一的例外是內容憑證（C2PA）：預設會保留，你勾選那個選項才會清掉，因為清掉它不只是隱私問題，也是在決定要不要放棄來源證明。

### 清掉中繼資料之後，照片會不會變成躺著的？

這是唯一一個真正的陷阱，所以這個工具選了邊。手機大多把畫面照感光元件的原始方向存起來，另外加一個 EXIF `Orientation` 標籤，意思是「顯示的時候請轉過來」。把這個標籤跟其他東西一起清掉，像素還是完好無損，但本來靠這個標籤的看圖軟體就會把照片顯示成橫躺的。真的去旋轉像素可以解決，但那就等於重新編碼，而那正是這頁堅持不做的那件事。所以預設輸出剛好留一個標籤：一個只含 `Orientation` 的最小 `APP1` 區塊——沒有相機、沒有時間、沒有 GPS——這對任何看圖軟體要把照片畫正來說都夠了。開嚴格模式的話連這個也清掉，得到一個中繼資料為零的檔案；真的什麼都不想留時再用，並預期有些看圖軟體會把照片顯示成轉過的。對照表會告訴你手上這個檔案屬於哪一種情況，因為 `Orientation` 本來就是 1 的照片，兩種做法都不會有損失。WebP 和 HEIC 的情況略有不同。WebP 的方向記在會被整塊清掉的 EXIF chunk 裡，所以 WebP 不會留下旋轉標記，有影響時對照表會提醒你。HEIC 的旋轉記在影像屬性而不是 EXIF，完全不受影響，照片還是正的。

### 哪些格式可以無損清除？

JPEG、PNG、WebP、HEIC/HEIF 和 AVIF。相機拍的 `.jpg`、iPhone 直接輸出的 `.heic`、網路上的 `.webp` 和 `.avif`，還有螢幕截圖的 PNG，基本上都涵蓋了。TIFF、GIF 和 RAW 檔目前不支援。這裡完全不做轉檔：HEIC 轉成 JPEG 就得重新編碼畫面，所以工具只會編輯你給它的那個檔案，不會做別的事。瀏覽器有可能顯示不出 HEIC 的預覽，這不影響清除，因為清除過程根本不解碼影像。預覽是空白的，檔案一樣讀了、也清了。

### 清完的 HEIC 為什麼大小完全一樣？十六進位編輯器裡看到一堆零是怎麼回事？

因為 HEIC 和 AVIF 就是設計成原地清除。這類檔案裡有一張表，記著包含照片在內、每個 item 的精確 byte 位置，如果用刪除位元組的方式清中繼資料，後面的內容全部位移，檔案很可能壞掉。覆蓋才安全：EXIF 和 XMP 的 item 會換成長度相同、內容為空但格式合法的替身，多出來的部分補零，其他地方一個 byte 都不動。用十六進位編輯器打開，看到原本放中繼資料的地方是一串零，那正是清除生效的樣子，不是沒清乾淨。再丟進 EXIF 檢視器一次，就能確認已經讀不到東西了。

### 「只清位置」模式會留下什麼？

它只清掉 GPS 區塊，EXIF 的其他部分原封不動，所以拍攝時間、相機與鏡頭型號、方向都會留著。最常見的需求是想發照片、但不想講在哪裡拍的，這個模式就很合適。有兩個限制。第一，XMP 在這個模式下一樣會清掉，因為位置欄位可能在 XMP 裡重複出現，而原地改寫 XMP 風險太高。第二，它只處理 GPS：照片說明裡寫的地名、畫面裡看得出來的街景，都不是中繼資料，不會被動到。

### 內容憑證（C2PA）是什麼？為什麼預設保留？

內容憑證是一份有簽章的紀錄，說明檔案是怎麼製作、怎麼編輯的，部分相機、AI 與編輯工具會寫進檔案。它不像 GPS 那樣在追蹤你，但清掉之後，這個檔案就沒辦法再證明自己的來源。所以這一頁預設保留，要你主動勾選才會清，報告裡也會獨立列成一行。如果憑證本身就透露了你不想公開的東西，例如帳號名稱或使用的編輯工具，再勾選清除。

### 原況照片的影片部分也有位置嗎？

有。原況照片是一張 HEIC 靜態照加一段很短的 `.MOV`，兩邊都可能帶座標，只清照片的話，位置還是會從影片洩漏。請把 `.MOV` 也丟進影片位置移除工具。HEIC 這一半建議用「只清位置」模式，這樣 EXIF 的其他部分會留著，不是全部丟掉。

### 我的照片會被上傳到哪裡嗎？

不會。每個檔案都是用 File API 在本機開啟，segment 和 chunk 的手術由你自己這個分頁裡的 JavaScript 執行，清好的檔案是瀏覽器自己產生的下載。這頁是靜態檔案，背後沒有 API，所以連個可以上傳的地方都不存在，把網路關掉也照樣能用。對這個工具來說這不是枝節：你最想清掉 GPS 的那些照片，剛好就是最不想送去不認識的伺服器的那些，而一個要你上傳的清除工具，早就已經收下了你正打算清掉的座標。

## Related tools

- [EXIF Viewer](https://bytescope.dev/zh-Hant/exif-viewer.md) — 可以先把每筆 EXIF 標籤讀出來，或把清過的檔再打開核對。
- [Binary Diff](https://bytescope.dev/zh-Hant/binary-diff.md) — 把原本和清過的檔，一個位元組一個位元組對起來。
- [Image Format Converter](https://bytescope.dev/zh-Hant/image-convert.md) — 連格式也要換？先在這裡轉好，再把結果清乾淨。
- [Remove Video Location](https://bytescope.dev/zh-Hant/remove-video-location.md) — 原況照片和手機拍的影片也帶有位置資訊，不用重新編碼就能清掉。
