AI 生成的 360 全景圖,為什麼手機打不開?我寫了一個 GPano Metadata 修復工具
AI 生 360 全景圖很方便,一句 prompt 就能生出 2:1 環景圖。
但我昨天幫小朋友做吉伊卡哇全景圖時,踩到一個很真實的坑:
在 GPT 裡看起來像 360,全景播放器裡也能拖來拖去,但下載到手機之後,它就只是一張普通圖片。
一開始我以為是 AI 出包,後來才發現真的不是它的問題(對不起,好朋友我錯怪你了)——問題出在檔案裡少了一段「告訴系統這是全景圖」的 metadata。
TL;DR
2:1比例只是全景圖的外表,真正讓手機、Facebook、Google Photos 認出「這是 360 照片」的,是藏在檔案裡的GPano XMP metadata。 我把「檢查比例、自動裁切、轉 JPG、補 metadata、批次輸出」整套流程包成一個 Windows 小工具,點我下載,防毒會擋掉,記得允許。
為什麼 AI 生成的全景圖,下載後不能 360 旋轉?
平台判斷一張圖是不是 360 全景,看的不是畫面內容,而是檔案裡有沒有寫 GPano XMP metadata。沒有這段資訊,就算比例是完美的 2:1,也只會被當成普通照片。
很多人以為圖片夠長、比例是 2:1、左右能接起來,這樣就是 360 全景圖了——其實只對一半。畫面內容適不適合當全景圖是一回事,檔案格式有沒有講清楚「我是全景圖」是另一回事。
GPT 內建預覽看起來很順,是因為它用自己的 viewer 幫你「演」出 360 效果。但檔案一旦下載出來,系統看的就不再是「像不像」,而是「metadata 有沒有寫對」。
關鍵缺的東西:GPano XMP metadata
GPano(Google Photo Sphere) 是目前手機、Facebook、Google Photos 辨識 360 全景圖最常見的 XMP metadata 規範,透過幾個固定欄位告訴平台「這張圖請用全景模式打開」。
一般人真的只要記住這 5 個就夠:
| 欄位 | 白話說明 |
|---|---|
ProjectionType | 這張圖用哪種方式攤平(幾乎都是 equirectangular),沒寫這個平台根本不知道你是全景圖還是長條海報 |
FullPanoWidthPixels / FullPanoHeightPixels | 完整球面世界有多大 |
CroppedAreaImageWidthPixels / CroppedAreaImageHeightPixels | 你這次實際輸出的畫面有多大 |
CroppedAreaLeftPixels / CroppedAreaTopPixels | 這塊畫面在完整世界裡的座標位置 |
InitialViewHeadingDegrees 等 | 打開時鏡頭預設先看哪個方向 |
如果你的圖是完整全景(不是裁切局部),邏輯很單純:完整尺寸=輸出尺寸,Left/Top 都是 0。
💡 GPano 規範其實還有姿態角度(
Pose...)、曝光、來源張數、有效顯示範圍等十幾個進階欄位,但那些對一般讀者是加分題,不是必修課。我做工具時也是把這 5 個當核心必填,其他統統給合理預設值,不用你手動理解。
找不到順手的轉檔工具,乾脆自己寫一個
我原本有找現成工具,但看了一輪不是介面複雜到像在跟 metadata 對決,就是參數多到讓人想放棄,不像在處理圖片。
所以最後最省事的方法反而是:直接寫一個專門處理 AI 360 圖的 Windows 工具。
github 專案在這裡,打包後就是一個 360 全景圖工具.exe,不是單純幫你塞一個欄位進 EXIF,而是把輸入到輸出整段流程都包起來。

這個工具實際上做了什麼?
- 批次處理:單張、多張、整個資料夾都行,需要的話子資料夾也能一起掃進來,AI 生圖常常一次出好幾版,不會想每張手動存。
- 自動抓 2:1 比例,不符合就照你的規則處理:可以選「自動裁切成 2:1」「跳過這張圖」「照原圖輸出」,裁切保留位置 X / Y(%)還能自己調,不會每次都從正中間硬切。我拿專案內的樣本測過:
sample_alpha.png(1000 x 700)處理後變成sample_alpha_360.jpg(1000 x 500),確實會裁到標準比例。 - 統一轉成 JPG:輸入吃
jpg / jpeg / png / webp / bmp / tiff / tif,輸出統一轉JPEG(目前最穩的 360 metadata 載體)。透明背景會先補底色再轉檔,底色可以自己指定(白底、黑底或任意色碼)。 - 真的把 XMP 寫進 JPEG,不是只改檔名交差:我直接檢查過輸出檔,
GPano:ProjectionType、equirectangular、CroppedAreaImageWidthPixels這些欄位真的被寫進 JPEG 的APP1 segment裡,metadata 是跟著輸出檔一起走的。 - 進階 metadata 可調,但預設值就夠用:角度、曝光、有效範圍這些進階欄位,工具都給了合理預設,一般人不用碰。
- 有桌面 UI,不用背命令列:
Tkinter介面,基本設定/進階 Metadata/處理紀錄三個分頁,加圖片、拖資料夾、看每張的處理狀態(待處理/處理中/完成/失敗)都在裡面。 - 輸出控制很實際:輸出到原圖旁邊或指定資料夾都行,檔名後綴預設
_360,JPEG品質預設95且可調,同名檔要不要覆蓋也能選。
這工具適合誰?不適合誰?
適合:
- 會用 AI 生 360 圖,但懶得研究 metadata 細節的人
- 想把圖丟到手機相簿、Facebook 或全景檢視環境的人
- 一次要處理很多張圖,不想每張手動修的人
不適合:
- 期待它能救回一張本來就「左右接不起來」「地平線歪掉」「透視本來就怪」的爛圖——它修的是格式跟 metadata,不是構圖
老實說,如果你的 AI 全景圖本身接得不好,這工具救不了你,你該回去換 prompt 重生成,而不是想靠補 metadata 補救內容問題。而且就算 metadata 寫對了,不同平台辨識邏輯還是可能有落差,它的定位是「把相容性拉高、把手動工作量降下來」,不是保證所有平台都同一個結果。
常見問題
Q:AI 生成的全景圖,為什麼一定要補 metadata 才能用?
A:因為手機相簿、Facebook、Google Photos 判斷「是不是 360 全景」,看的是檔案裡的 GPano XMP metadata,不是看圖片內容。沒有這段資訊,再標準的 2:1 equirectangular 圖也只會被當成普通照片。
Q:這個工具支援哪些圖片格式?
A:輸入吃 jpg / jpeg / png / webp / bmp / tiff / tif,輸出統一轉成 JPEG,因為這是目前 360 metadata 最穩的載體格式。
Q:不是 2:1 比例的圖片一定要裁切嗎?
A:不一定。工具提供三種策略:自動裁切成 2:1、跳過這張圖、或照原圖輸出,看你自己需求選。
Q:補完 metadata 就保證所有平台都認得出來嗎? A:不保證。不同平台的辨識邏輯還是可能有差異,這工具能做的是把相容性拉高、把手動補欄位的工作量降下來,不是 100% 保證每個平台都同一個結果。
半桶水的
留言區
載入中...
發表留言