createImageBitmap indisponível? Diagnóstico por plataforma e ambiente
O que você está vendo
O Any3D exibe a mensagem "O navegador atual não suporta createImageBitmap". Esse é um dos três componentes do caminho do Worker, usado para decodificar pixels de imagem em segundo plano com eficiência. Sem ele, fluxos como compressão de textura e conversão de imagem para modelo não conseguem percorrer todo o caminho do Worker, e arquivos grandes tendem a travar com mais frequência.
Causas comuns
| Causa | Cenário típico |
|---|---|
| Navegador/WebView desatualizado | WebView Android antigo, páginas embutidas em apps (WhatsApp, Facebook, etc.) |
| Contexto não seguro | Site HTTP (exceto localhost), file:// |
| Recursos entre origens mal configurados | CDN corporativo / CORS inválido causa falha na decodificação (funcionalidade anormal) |
| Limitação de memória/aba | Dispositivos móveis com pouca RAM, política corporativa de "aba única" |
| Interferência de extensões | Extensões de privacidade que alteram o comportamento da API Image |
Diagnóstico por plataforma
Windows / macOS (Desktop)
- Use a versão estável mais recente do Chrome / Edge / Firefox / Safari.
- Acesse o Any3D obrigatoriamente via HTTPS.
- Tempo de Uso no macOS e Segurança da Família no Windows – se limitarem downloads ou acesso a mídia, podem afetar a decodificação de imagens grandes. Teste com uma conta de administrador.
- Área de Trabalho Remota: texturas de resolução muito alta podem falhar em ambientes com GPU fraca. Primeiro, teste com imagens pequenas.
Linux
- Atualize Chrome/Firefox; no Wayland, se a decodificação de GPU estiver com problemas, tente alternar para uma sessão X11 (raro, mas possível).
iOS / iPadOS
- Safari 14+ tem suporte razoável; mantenha o iOS atualizado.
- Navegadores embutidos em apps como WhatsApp ou Facebook costumam ter núcleos desatualizados → abra no Safari.
- Proxy do iCloud / Restrições de conteúdo adulto – geralmente não bloqueiam createImageBitmap, mas podem bloquear imagens de terceiros. Certifique-se de que as texturas do modelo estejam na mesma origem ou sejam acessíveis.
Android
- Atualize o Chrome e o Android System WebView (Ajustes → Aplicativos → Mostrar sistema).
- Navegadores de terceiros (como o nativo de marcas chinesas) em modo compatível → troque pelo Chrome.
- Bem-estar Digital / Family Link – não afetam diretamente a API, mas podem impedir o upload de arquivos grandes.
Rede, VPN e Intranet corporativa
| Cenário | Descrição |
|---|---|
| VPN corporativa | Se as texturas do modelo vêm de uma CDN interna, erros de CORS ou certificado podem causar falha – o Console mostrará erros de rede |
| Proxy transparente | Se a resposta da imagem for substituída ou corrompida, createImageBitmap pode rejeitar |
| Intranet apenas HTTP | Contexto não seguro – a API pode estar indisponível ou ter comportamento limitado |
| Zero Trust / SSL inspection | Certificados autoassinados precisam ser importados como confiáveis; caso contrário, recursos não carregam |
Sugestão: Desconecte a VPN, mude para um hotspot e faça upload de um modelo geométrico puro sem texturas externas – se funcionar com geometria pura e falhar com texturas, investigue a rede/CORS primeiro.
Políticas corporativas e controles parentais
- Proteção de Aplicativos do Intune pode restringir "Salvar como/Download", afetando indiretamente o fluxo de seleção de imagens, mas a API em si deve existir – teste no Console para diferenciar.
- Gerenciamento de iPads escolares: proibir o app "Arquivos" não afeta a API, mas afeta o método de upload; use canais de upload compatíveis.
- DNS do controle parental no roteador: se bloquear o domínio do Any3D, o site inteiro fica indisponível, não apenas o createImageBitmap.
Correção passo a passo (genérica)
- HTTPS + navegador atualizado + reinicie.
- Janela anônima para excluir extensões.
- Abra no navegador do sistema, não no WebView de um app.
- Verifique também se o Web Worker e o OffscreenCanvas estão com alertas.
Teste rápido
typeof createImageBitmap !== "undefined";
Avançado (requer HTTPS e uma URL de imagem acessível):
fetch("https://example.com/favicon.ico")
.then((r) => r.blob())
.then((b) => createImageBitmap(b))
.then(() => console.log("ok"))
.catch(console.error);
Resumo
Problemas com createImageBitmap geralmente são causados por WebView desatualizado, falta de HTTPS, VPN/intranet que impedem o carregamento de recursos. Atualizando o WebView de acordo com a plataforma, trocando de rede e excluindo extensões, o caminho de imagem do Worker costuma ser restaurado.