Kris

createImageBitmap недоступен? Диагностика по платформе и окружению

Устранение неполадокСовместимость с браузерамиcreateImageBitmap

Что вы видите

Any3D показывает сообщение «Текущий браузер не поддерживает createImageBitmap». Это один из трёх компонентов пути Worker, используемый для эффективного декодирования пикселей изображения в фоне. Без него такие процессы, как сжатие текстур, преобразование картинок в модели, не могут пройти по полному пути Worker, а большие файлы чаще вызывают тормоза.

Частые причины

ПричинаТипичный сценарий
Устаревший браузер/WebViewСтарый Android WebView, встроенные страницы в приложениях
Небезопасный контекстHTTP-сайты (не localhost), file://
Неправильная настройка кросс-доменовКорпоративный CDN/CORS, изображения не декодируются (проявляется как сбой функциональности)
Ограничения памяти/вкладокМало памяти на мобильных, политика «одна вкладка» на предприятии
Вмешательство расширенийПриватные плагины изменяют поведение Image API

Диагностика по платформе

Windows / macOS (десктоп)

  1. Используйте последнюю стабильную версию Chrome / Edge / Firefox / Safari.
  2. Открывайте Any3D обязательно через HTTPS.
  3. Экранное время на macOS и Семейная безопасность на Windows могут ограничивать загрузку или доступ к медиа, что повлияет на декодирование больших картинок — проверьте под учётной записью администратора.
  4. Удалённый рабочий стол: текстуры сверхвысокого разрешения могут не декодироваться на слабом GPU — сначала протестируйте с маленьким изображением.

Linux

  1. Обновите Chrome/Firefox; в Wayland при проблемах с декодированием GPU попробуйте сессию X11 (редко).

iOS / iPadOS

  1. Safari 14+ поддерживает хорошо; держите iOS обновлённой.
  2. Встроенный браузер Telegram (или VK) часто отстаёт по версии → открывайте в Safari.
  3. iCloud Private Relay / ограничение контента для взрослых обычно не блокируют createImageBitmap, но могут блокировать кросс-доменные изображения — убедитесь, что текстуры модели находятся на том же источнике или доступны.

Android

  1. Обновите Chrome и Android System WebView (Настройки → Приложения → Показать системные приложения).
  2. Браузеры вроде Yandex Browser в режиме совместимости → переключитесь на Chrome.
  3. Цифровое благополучие / 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.

Пошаговое решение (универсальное)

  1. HTTPS + последний браузер + перезагрузка.
  2. Режим инкогнито (исключает расширения).
  3. Открывайте в системном браузере, а не в WebView приложения.
  4. Заодно проверьте 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 обычно восстанавливается.

Поддержите нас