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