createImageBitmap nicht verfügbar? Behebung nach Plattform und Umgebung
Das Symptom
Any3D meldet: „Der aktuelle Browser unterstützt createImageBitmap nicht.“ Dies ist eines der drei Kernelemente der Worker-Pathway, das im Hintergrund eine effiziente Decodierung von Bilddaten ermöglicht. Bei Ausfall können Prozesse wie Texturkomprimierung oder Bild-zu-Modell-Konvertierung den gesamten Worker-Pfad nicht durchlaufen, was bei großen Dateien zu Verzögerungen führt.
Häufige Ursachen
| Ursache | Typisches Szenario |
|---|---|
| Alter Browser/WebView | Alte Android WebView, eingebettete App-Seiten |
| Unsicherer Kontext | HTTP-Seiten (nicht localhost), file:// |
| Falsch konfigurierte Cross-Origin-Ressourcen | Unternehmens-CDN/CORS führt zu Fehlern bei der Bilddecodierung (äußert sich als Funktionsstörung) |
| Speicher-/Tab-Einschränkungen | Mobilgeräte mit wenig Speicher, Unternehmens-„Einzel-Tab“-Richtlinien |
| Erweiterungsstörungen | Datenschutz-Plugins, die das Image-API-Verhalten ändern |
Behebung nach Plattform
Windows / macOS (Desktop)
- Verwenden Sie Chrome / Edge / Firefox / Safari in der neuesten stabilen Version.
- Öffnen Sie Any3D über HTTPS.
- macOS Bildschirmzeit und Windows Familien Safety, wenn sie Downloads oder Medienzugriff einschränken, können die Decodierung großer Bilder beeinflussen – testen Sie mit einem Administrator-Konto.
- Remote Desktop: Extrem hochauflösende Texturen können in Umgebungen mit schwacher GPU fehlschlagen – testen Sie zuerst mit kleinen Bildern.
Linux
- Aktualisieren Sie Chrome/Firefox; unter Wayland können Sie bei GPU-Decodierungsproblemen alternativ eine X11-Sitzung testen (selten).
iOS / iPadOS
- Safari 14+ bietet gute Unterstützung; halten Sie iOS auf dem neuesten Stand.
- Der in WeChat eingebaute Browser verwendet oft einen veralteten Kern → Öffnen Sie in Safari.
- iCloud Private Relay / Inhaltseinschränkungen blockieren normalerweise nicht createImageBitmap, können aber Hosts cross-origin-Bilder blockieren — stellen Sie sicher, dass Modelltexturen same-origin oder erreichbar sind.
Android
- Aktualisieren Sie Chrome und Android System WebView (Einstellungen → Apps → System-Apps anzeigen).
- Kompatibilitätsmodus bei lokalen Browsern → Verwenden Sie Chrome.
- Digitale Wohlfahrt / Family Link schränkt Hintergrundaktivitäten ein und kann große Datei-Uploads blockieren, beeinflusst aber nicht direkt die API.
Netzwerk, VPN und Unternehmens-Intranet
| Szenario | Beschreibung |
|---|---|
| Firmen-VPN | Wenn Modelltexturen über ein Intranet-CDN geladen werden, können CORS- oder Zertifikatsfehler die Decodierung zum Scheitern bringen – die Console zeigt Netzwerkfehler an |
| Transparenter Proxy | Ersetzt oder beschädigt Bildantworten, wodurch createImageBitmap ablehnen kann |
| Nur HTTP im Intranet | Kein sicherer Kontext, die API ist möglicherweise nicht verfügbar oder ihr Verhalten ist eingeschränkt |
| Zero Trust / SSL-Inspektion | Selbstsignierte Zertifikate müssen importiert und vertrauenswürdig sein, sonst laden Ressourcen fehlgeschlagen |
Empfehlung: Trennen Sie das VPN, verwenden Sie einen Hotspot und laden Sie ein reines Geometrie-Modell ohne externe Texturen hoch – wenn Geometrie funktioniert, Texturen aber nicht, prüfen Sie zuerst Netzwerk/CORS.
Unternehmensrichtlinien und Kindersicherung
- Intune App Protection kann „Speichern unter/Downloads“ einschränken, was den Bildauswahlprozess indirekt beeinflusst, aber die API selbst sollte vorhanden sein – testen Sie dies mit der Console.
- Schul-iPad-Verwaltung: Das Verbot der „Dateien“-App beeinträchtigt nicht die API, aber beeinflusst die Upload-Methode; verwenden Sie einen unterstützten Upload-Kanal.
- Router-Kindersicherung DNS: Blockiert die Any3D-Domain, wird die gesamte Website unzugänglich, nicht nur createImageBitmap.
Schritt-für-Schritt-Behebung (allgemein)
- HTTPS + neuester Browser + Neustart.
- Incognito-Fenster, um Erweiterungen auszuschließen.
- Öffnen Sie den Systembrowser, nicht den App-WebView.
- Prüfen Sie gleichzeitig, ob Web Worker und OffscreenCanvas ebenfalls Warnungen ausgeben.
Schneller Selbsttest
typeof createImageBitmap !== "undefined"
Erweitert (benötigt HTTPS und eine erreichbare Bild-URL):
fetch("https://example.com/favicon.ico")
.then((r) => r.blob())
.then((b) => createImageBitmap(b))
.then(() => console.log("ok"))
.catch(console.error);
Fazit
Probleme mit createImageBitmap sind meist auf alte WebView, fehlendes HTTPS oder VPN/Intranet zurückzuführen, das das Laden von Ressourcen verhindert. Durch Aktualisieren des WebView gemäß Plattform, Netzwerkwechsel zum Testen und Ausschließen von Erweiterungen kann der Worker-Bildpfad normalerweise wiederhergestellt werden.