·Any3D Team
createImageBitmap 不可用?按平台與環境排查
troubleshootingbrowser-compatibilitycreateimagebitmap
你看到的症狀
Any3D 提示「當前瀏覽器不支援 createImageBitmap」。這是 Worker 路徑三件套之一,用於在後台高效解碼圖片像素。缺失後紋理壓縮、圖片轉模型等流程無法走完整 Worker 路徑,大檔案更容易卡頓。
常見原因
| 原因 | 典型場景 |
|---|---|
| 瀏覽器/WebView 過舊 | 舊版 Android WebView、App 內嵌頁 |
| 非安全上下文 | HTTP 站點(非 localhost)、file:// |
| 跨域資源未正確配置 | 企業 CDN/CORS 導致圖片解碼失敗(表現為功能異常) |
| 內存/標籤頁限制 | 移動低記憶體裝置、企業「單標籤」策略 |
| 擴充干擾 | 隱私外掛程式修改 Image API 行為 |
按平台排查
Windows / macOS(桌面)
- 使用 Chrome / Edge / Firefox / Safari 最新穩定版。
- 必須透過 HTTPS 開啟 Any3D。
- macOS 螢幕使用時間、Windows 家庭安全 若限制下載或媒體存取,可能影響大圖解碼——換管理員帳戶測試。
- 遠端桌面:極高解析度紋理在弱 GPU 環境可能解碼失敗,先用小圖驗證。
Linux
- 更新 Chrome/Firefox;Wayland 下若 GPU 解碼異常,可嘗試 X11 會話對比(少見)。
iOS / iPadOS
- Safari 14+ 起支援較好;保持 iOS 系統更新。
- 微信內建瀏覽器核心常滯後 → Safari 開啟。
- iCloud 專用代理 / 限制成人內容 一般不擋 createImageBitmap,但會擋跨域圖床——確保模型貼圖同源或可存取。
Android
- 更新 Chrome 與 Android System WebView(設定 → 應用 → 顯示系統應用)。
- 國產瀏覽器相容模式 → 換 Chrome。
- 數位健康 / Family Link 限制背景活動時不直接影響 API,但可能阻止大檔案上傳。
網路、VPN 與企業內網
| 場景 | 說明 |
|---|---|
| 公司 VPN | 若模型貼圖走內網 CDN,CORS 或憑證錯誤會導致 decode 失敗——Console 會有網路報錯 |
| 透明代理 | 替換或損壞圖片回應時,createImageBitmap 可能 reject |
| 內網僅 HTTP | 非 secure context,API 可能不可用或行為受限 |
| 零信任 / SSL inspection | 自簽憑證需匯入信任,否則資源載入失敗 |
建議:斷開 VPN、換熱點,上傳無外部貼圖的純幾何模型測試——若純幾何正常而帶貼圖失敗,優先查網路/CORS。
企業策略與家長控制
- Intune App Protection 可能限制「另存為/下載」,間接影響使用者選圖流程,但 API 本身仍應存在——用 Console 自測區分。
- 學校 iPad 監管:禁止「檔案 App」時不影響 API,但影響上傳方式;改用支援的上傳管道。
- 路由器家長控制 DNS:若攔截 Any3D 網域,整站不可用,而非單獨 createImageBitmap。
分步修復(通用)
- HTTPS + 最新瀏覽器 + 重啟。
- 無痕視窗排除擴充。
- 系統瀏覽器開啟,非 App WebView。
- 同時檢查 Web Worker 與 OffscreenCanvas 是否也告警。
快速自測
typeof createImageBitmap !== "undefined"
進階(需 HTTPS 與一張可存取的圖片 URL):
fetch("https://example.com/favicon.ico")
.then((r) => r.blob())
.then((b) => createImageBitmap(b))
.then(() => console.log("ok"))
.catch(console.error);
小結
createImageBitmap 問題多為 舊 WebView、非 HTTPS、VPN/內網導致資源載入失敗。按平台更新 WebView、換網路驗證、排除擴充後,Worker 圖像路徑通常可恢復。