HEIC 是什麼?為什麼 iPhone 的照片在 Windows 上打不開

.heic 從哪來、蘋果為什麼換用它、發到電腦上到底哪一步壞了,以及把它變成 JPG 的三種辦法。

一句話

HEIC 是 iPhone 從 2017 年起拍照預設使用的檔案格式。同一張照片,它佔的空間大約是 JPG 的一半——這是蘋果採用它的原因,也是蘋果生態之外幾乎沒人要它的原因。Windows、多數網頁上傳表單、舊一點的安卓手機和很多沖印服務,要麼拒收這個檔案,要麼顯示一個空白縮圖。解決辦法是把照片轉成 JPG:要麼在手機設定裡一次性改掉,要麼在需要傳送時按檔案轉。

這個格式從哪來

HEIC 的全稱是 High Efficiency Image Container(高效率影象容器)。它本身不是一種壓縮方法,而是一個盒子。盒子的格式叫 HEIF(High Efficiency Image File Format),由 MPEG 工作組在 2015 年定為 ISO/IEC 23008-12 標準。盒子裡的影象資料用 HEVC 壓縮——就是 4K 串流媒體在用的 H.265 影片編碼,只不過用在一幀靜止畫面上。HEIF 也能裝別的編碼(AVIF 就是裝了 AV1 的 HEIF),但編碼是 HEVC 時,蘋果給檔案的副檔名是 .heic。

蘋果在 2017 年 9 月隨 iOS 11 把 iPhone 相機的預設格式換成了 HEIC。理由是儲存:一幀 HEVC 內幀在同等觀感下,體積大約是 JPEG 的 40–50%;而當時 iPhone 還在賣 32 GB 的機型,鏡頭已經到了 1200 萬畫素。5000 張照片按每張 3 MB 算是 15 GB,按 1.5 MB 算是 7.5 GB。這個格式還能裝下 JPEG 裝不了的東西:10 位色深、人像模式用的深度圖、原況照片背後的三秒短片、連拍序列,全在一個檔案裡。

到了別處為什麼壞

兩個問題疊在一起。

專利。 HEVC 被好幾個專利池覆蓋(MPEG LA、Access Advance、Velos Media),授權條款多年來既不清楚又不便宜。微軟在 Windows 10 上的做法是:免費提供容器支援,但把 HEVC 影片擴充套件 這個解碼器放在 Microsoft Store 裡賣 0.99 美元;沒裝它,“照片”應用只顯示檔名和一個灰框。有些品牌機預裝了免費的“裝置製造商提供”版本,大多數沒有。Chrome、Firefox、Edge 出於同樣的授權原因,從來沒加過 HEIC 解碼——所以任何在瀏覽器裡預覽圖片的網站,看到 HEIC 就是一個不認識的二進位制塊。macOS 和 iOS 上的 Safari 能原生解碼,因為蘋果付了授權費。

2017 年之前寫的軟體。 全世界相當一部分上傳表單、內容管理系統、電商後臺和照片印表機,是按副檔名或檔案頭幾個位元組來校驗檔案的,寫它們的時候“照片”就是 JPEG、PNG、GIF。它們把 .heic 當“不是圖片”拒掉。安卓從 9(2018 年)開始支援解碼 HEIF,但很多相簿和聊天應用為保險起見,發出去時仍然轉成 JPEG。

實際結果就是:iPhone 使用者AirDrop給 Mac,一切正常;同一張照片透過資料線、郵件或雲端硬碟到了 PC,收件人打不開。

為什麼你常常沒察覺

iOS 在好幾條路徑上會自動把 HEIC 轉成 JPEG,所以很多人根本不知道這個格式的存在。透過“資訊”、郵件、WhatsApp、Instagram 或多數第三方應用分享,走的是系統分享面板,交出去的是 JPEG。設定 → 照片 → 傳輸到 Mac 或 PC → 自動 這個選項在 USB 複製時做同樣的事。原始 HEIC 漏出去的,是那些“複製檔案”而不是“分享”的路徑:iCloud 雲端硬碟、檔案 App、設定為 保留原片 的 USB 傳輸、Google 相簿的備份,以及任何為了畫質而索要原件的地方。

三種拿到 JPG 的辦法

  1. 不再產生它。 設定 → 相機 → 格式 → 相容性最佳,此後相機直接拍 JPEG。照片體積大約翻倍,10 位色深沒了,但你發出去的東西再也不會被退回。已有的 HEIC 不會被轉換。
  2. 出門時轉。 把 傳輸到 Mac 或 PC 設為 自動,讓 iOS 在 USB 複製時轉換;用應用“分享”而不是複製檔案。
  3. 轉已經到手的檔案。 已經落到 PC 上的那幾個檔案,用 HEIC 轉 JPG 在瀏覽器裡解碼——解碼器(libheif,編譯成 WebAssembly)在你自己的機器上跑,一整個資料夾的家庭照片不會上傳到任何地方。它支援批次,保留拍攝日期和方向,需要無損副本時也能輸出 PNG。如果還要把照片壓小了發郵件,同一次壓縮就行。

轉換會丟什麼

HEIC 轉 JPEG 是一次有損重編碼:解碼器還原出完整影象,JPEG 編碼器再壓一遍。品質設在 85–90 時,正常觀看看不出差別,但差別存在,所以在乎母本的話把 HEIC 留著。有兩樣東西會被直接丟掉,因為 JPEG 裡沒有它們的位置:深度圖(人像模式的虛化不能再調)和原況照片的短片。後設資料——拍攝時間、機型、拍攝時記錄的 GPS 位置——會隨 EXIF 塊帶過去,所以在把檔案公開發布之前,看一眼你是否想要位置資訊留在裡面。

這事會過去嗎

慢慢地。Windows 11 在多數機器上仍然對 HEVC 解碼器收費。瀏覽器選了 AVIF 作為下一代靜態圖片格式,因為 AV1 免專利費——所以網頁正在收斂的那個“現代圖片格式”是 HEIC 的兄弟,不是 HEIC 本身。長期大機率的局面是:HEIC 留在蘋果裝置上做拍攝格式,JPEG(或 AVIF)做交換格式,轉換髮生在兩者之間的某個地方——最好是一個不需要上傳照片的地方。

本文用到的工具