# 傳照片原檔前，先清掉附帶的定位：mat2 兩張成功、一張失敗實測

- 網址：https://blog.valenvan.uk/posts/jvoisin-mat2.html
- 發布日期：2026-10-28
- 測試設備：Mac mini M4 Pro（12 核、64GB）
- 專案：jvoisin/mat2（https://github.com/jvoisin/mat2），LGPL-3.0 授權
- 測試版本：mat2 0.15.0 / bfa850a4fca5e03dbe326b227827fa9fb41573d0
- 實測影片：https://www.youtube.com/shorts/WX-Avn7XQ3M

## 重點摘要

- 在人工植入資料的JPEG示範圖中，mat2清理後的作者、拍攝時間與定位欄位未再被ExifTool讀到。
- PNG示範圖清理後，作者與註記欄位未再被讀到。
- JPEG與PNG兩張副本均可解碼，尺寸均為1000×720，原檔仍保留。
- 本次WebP示範圖在圖片讀取階段失敗，沒有產生乾淨副本。
- **結論：** 本次JPEG與PNG完成指定欄位清理，WebP失敗；欄位未再讀到不等於完全匿名。
- **適合：** 常傳原始圖片、願意使用命令列清理附帶資訊的人
- **不適合：** 需要手機一鍵操作或自動遮蔽照片畫面個資的人

| 實測項目 | 結果 |
|---|---|
| JPEG | 清理後指定欄位未再讀到，副本可開啟 |
| PNG | 清理後指定欄位未再讀到，副本可開啟 |
| WebP | 格式讀取失敗，未完成清理 |
| 圖片尺寸 | 兩張成功副本皆1000×720 |

要把照片原檔傳給剛認識的合作對象，你可能先檢查有沒有拍到門牌，卻漏看圖片裡的其他資訊。圖片除了看得到的畫面，也可能夾帶拍攝時間、作者與定位。mat2 的用途，就是盡可能移除這些附帶資料；它不是修圖遮臉工具，也不能保證完全匿名。

這次不用真實住家照片，而是自己畫一張房屋示範圖，再人工寫入 DemoOwner、時間與示範座標。座標不是任何人的實際拍攝紀錄。測試設備為 Mac mini M4 Pro（12 核、64GB），實際程式執行環境是 Debian 12、Python 3.11；測試日期為 2026-10-28。

## 先把工具準備好

受測的是 mat2 0.15.0，來源提交為 `bfa850a4fca5e03dbe326b227827fa9fb41573d0`。本次先用 Debian 套件裝好依賴，再執行 GitHub 原始碼裡的程式。需要系統套件安裝權限，以下命令適用 Debian，不是讓你直接貼到 Windows 終端機：

```bash
apt-get update
apt-get install -y mat2 python3-pil
git clone https://github.com/jvoisin/mat2.git
cd mat2
git checkout bfa850a4fca5e03dbe326b227827fa9fb41573d0
/usr/bin/python3 ./mat2 --version
```

官方也提供其他系統的安裝說明。本篇驗證的是上述版本與圖片流程；別把它當成每個系統、每種格式都已經測過。

## 先看，再產生副本

把要處理的照片複製到工作資料夾。本例檔名是 `share.jpg` 和 `share.png`。第一個命令只看附帶資訊；第二個才清理：

```bash
/usr/bin/python3 ./mat2 -s share.jpg
/usr/bin/python3 ./mat2 share.jpg share.png
exiftool -s -Artist -GPSPosition -DateTimeOriginal share.jpg
exiftool -s -Artist -GPSPosition -DateTimeOriginal share.cleaned.jpg
exiftool -s -Author -Comment share.cleaned.png
```

![清理前，示範姓名與座標仍能被讀出](https://blog.valenvan.uk/img/jvoisin-mat2-article_1.png)

預設會另外產生 `share.cleaned.jpg`、`share.cleaned.png`，原圖還在。傳檔時要選清理後的副本，別又把原檔送出去。本次沒有加 `--inplace`，也不建議第一次使用就覆蓋唯一原件。

## 這次真的跑出什麼

|示範圖片|植入的資訊|實測結果|
|---|---|---|
|JPEG|示範作者、時間、定位|指定欄位未再讀到；副本可開啟|
|PNG|示範作者、註記|指定欄位未再讀到；副本可開啟|
|WebP|示範作者、定位|讀取格式失敗，沒有乾淨副本|

兩張成功副本都經 Pillow 重新開啟並完整讀取，尺寸維持 1000 × 720。這只驗證圖片仍能解碼與尺寸，沒有宣稱每個像素完全相同；官方提醒，預設清理可能重新壓縮圖片。

![清理後的指定欄位沒有列出，原件與副本分開保留](https://blog.valenvan.uk/img/jvoisin-mat2-article_2.png)

WebP 的錯誤是 `Couldn’t recognize the image file format`，來自圖片讀取元件。這表示本次環境沒有成功讀進這張 WebP，不代表所有 WebP 都不能清。遇到同樣狀況先保留原件、看清錯誤與檢查依賴，不要把沒有輸出當成成功；本篇也沒有驗證安裝額外元件後就能解決。

## 怎樣才算能放心傳

我會把它用在寄出原始圖片前的多一道整理，尤其是不想順帶交出作者、時間或位置資訊時。但「指定欄位沒有讀到」不等於沒有任何其他資訊，官方也明講偵測有其限制。照片裡可見的門牌、臉或車牌仍要另外遮蔽，副本也應打開確認。

適合願意照命令操作、常傳原始圖片的人；需要手機一鍵處理、或期待自動遮掉畫面個資的人，這個流程不直接滿足需求。先用可丟棄的圖片試一次，再處理自己的檔案。

專案與操作說明：[mat2 GitHub](https://github.com/jvoisin/mat2)。授權為 GNU LGPL 3.0 或更新版本（以專案 LICENSE 為準）。
