createImageBitmap недоступен? Устранение неполадок по платформам и средам
Вы видите симптом
Any3D сообщает: «Текущий браузер не поддерживает createImageBitmap». Это один из ключевых компонентов Worker-пути для эффективного декодирования пикселей изображений в фоновом режиме. Без него невозможно полностью реализовать Worker-путь для сжатия текстур, конвертации изображений в модели и т.д., что часто приводит к зависаниям при работе с большими файлами.
Типичные причины
| Причина | Типичный сценарий |
|---|---|
| Устаревший браузер/WebView | Старые Android WebView, встроенные страницы приложений |
| Небезопасный контекст | HTTP-сайты (кроме localhost), протокол file:// |
| Неправильная настройка кросс-доменных ресурсов | Корпоративный CDN/CORS приводит к сбою декодирования изображений (проявляется как функциональные нарушения) |
| Ограничения памяти/вкладок | Мобильные устройства с небольшим объемом RAM, корпоративные политики «одной вкладки» |
| Вмешательство расширений | Плагины конфиденциальности изменяют поведение Image API |
Устранение неполадок по платформам
Windows / macOS (ПК)
- Используйте последние стабильные версии Chrome / Edge / Firefox / Safari.
- Откройте Any3D через HTTPS.
- Ограничения экранного времени на macOS или семейная безопасность в Windows, ограничивающие загрузку или доступ к медиа, могут влиять на декодирование больших изображений — проверьте, используя учетную запись администратора.
- Удаленный рабочий стол: текстуры сверхвысокого разрешения могут не декодироваться в среде со слабой GPU. Начните с проверки на небольшом изображении.
Linux
- Обновите Chrome/Firefox; при аномалиях декодирования GPU в Wayland попробуйте сравнить с сессией X11 (встречается редко).
iOS / iPadOS
- Хорошая поддержка начинается с Safari 14+; поддерживайте обновление iOS.
- Встроенный браузер в WeChat часто использует устаревшее ядро → откройте в Safari.
- Частный прокси iCloud / ограничения контента для взрослых обычно не блокируют createImageBitmap, но могут блокировать кросс-доменные хостинги изображений — убедитесь, что текстуры модели доступны с того же источника или без ограничений.
Android
- Обновите Chrome и Android System WebView (Настройки → Приложения → показать системные приложения).
- Отечественные браузеры в режиме совместимости → замените на Chrome.
- Цифровое здоровье / Family Link, ограничивающие фоновую активность, не влияют напрямую на API, но могут блокировать загрузку больших файлов.
Сеть, VPN и корпоративная интрасеть
| Сценарий | Пояснение |
|---|---|
| Корпоративный VPN | Если текстуры модели загружаются через корпоративный CDN, ошибки CORS или сертификатов приведут к сбою декодирования — в Console будут сетевые ошибки |
| Прозрачный прокси | При замене или повреждении ответов изображений createImageBitmap может отклонить (reject) промис |
| Только HTTP в интрасети | Небезопасный контекст (insecure context), API может быть недоступен или работать с ограничениями |
| Zero Trust / SSL inspection | Самоподписанные сертификаты необходимо добавить в доверенные, иначе загрузка ресурсов будет невозможна |
Рекомендация: отключите VPN, переключитесь на точку доступа (hotspot) и загрузите чистую геометрическую модель без внешних текстур — если простая модель работает, а с текстурами нет, в первую очередь проверьте сеть/CORS.
Корпоративные политики и родительский контроль
- Intune App Protection может ограничивать «Сохранить как/загрузку», косвенно влияя на процесс выбора изображений пользователем, но сам API по-прежнему должен присутствовать — проверьте через Console.
- Управление iPad в школах: запрет «Приложения Файлы» не влияет на API, но затрагивает способы загрузки; используйте поддерживаемые каналы загрузки.
- Родительский контроль DNS на маршрутизаторе: если блокируется домен Any3D, весь сайт будет недоступен, а не только createImageBitmap.
Пошаговое устранение неполадок (общий случай)
- HTTPS + актуальный браузер + перезагрузка.
- Окно в режиме инкогнито для исключения влияния расширений.
- Откройте в системном браузере, а не во встроенном 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-путь обработки изображений обычно восстанавливается.