#imagem #conversor #dados #matriz #arduino #oled

Conversor de Imagem para Matriz de Dados C/C++ (Usado em Arduino/OLED)

Converta imagens em matrizes de dados C e C++ no formato hexadecimal ou binário para displays OLED e projetos Arduino com este conversor online gratuito, rápido e que funciona 100% no seu navegador.

Entrada de Imagem

Ajustes de Dimensão

Processamento Monocromático

Valores maiores tornam a imagem mais escura.

Visualização OLED Pixel-Art

Aguardando imagem para renderizar matriz...

Processando pixels...

Total de Pixels 0 px
Bytes Ocupados 0 B

Configuração de Código

Atualizar dados em tempo real Ativo

Matriz de Dados C/C++ Estruturada

Copie e cole diretamente no seu sketch da IDE do Arduino.

// Aguardando upload ou desenho de imagem para estruturar array C/C++...
Ação realizada com sucesso!

Tutoriais em vídeo de como usar esta ferramenta

O que é o Conversor de Imagem para Matriz C/C++?

O Conversor de Imagem para Matriz de Dados C/C++ é uma ferramenta indispensável para desenvolvedores de hardware, makers e entusiastas de eletrônica que trabalham com microcontroladores como Arduino, ESP8266, ESP32 e Raspberry Pi. Seu objetivo principal é traduzir uma imagem visual comum (como um logotipo, ícone ou gráfico em PNG/JPG) para um formato matemático que o código-fonte consiga interpretar: um array de bytes.

Displays monocromáticos muito populares, como o OLED SSD1306 (I2C/SPI) ou telas e-Ink, não processam arquivos de imagem tradicionais. Eles precisam receber comandos precisos sobre qual pixel deve ser aceso (1) ou apagado (0). Nossa ferramenta processa a sua imagem e gera exatamente esse mapa de bits (bitmap) binarizado, entregando o código pronto para você colar na sua IDE e utilizar com bibliotecas como Adafruit GFX ou U8g2.

Como usar o conversor passo a passo

Desenvolvemos uma interface gráfica reativa onde tudo acontece instantaneamente na sua tela. Siga estes passos para gerar o código perfeito para o seu display:

  1. Faça o upload da imagem: Arraste e solte o arquivo desejado na área pontilhada ou clique para selecionar. Aceitamos qualquer formato comum de imagem web. Se a imagem estiver muito pesada e quiser organizá-la antes, você pode usar nosso Otimizador de PNG para Web.
  2. Defina as dimensões (Resolução): Insira a largura e altura exatas do seu display ou do ícone que deseja renderizar (ex: 128x64 pixels). Utilize a opção de "Manter proporção original" para não distorcer sua imagem.
  3. Ajuste o processamento monocromático: Como o display exibe apenas preto e branco, utilize o controle deslizante de Limiar (Threshold) para definir o ponto de corte entre o que vira pixel aceso ou apagado. Corrija detalhes ajustando o Brilho e Contraste em tempo real, verificando o resultado na janela de "Visualização OLED".
  4. Configure a saída do código: Escolha o nome da variável, o formato dos bytes (Hexadecimal ou Binário) e a orientação dos pixels (Horizontal para Adafruit GFX, Vertical para U8g2).
  5. Copie ou Baixe: Com o preview validado, basta clicar em "Copiar Código" ou baixar o arquivo .h para incluir direto no projeto do seu Arduino.

Principais Funcionalidades e Controles Avançados

  • Redimensionamento Inteligente (Scaling): Escolha como a imagem vai se comportar na matriz com modos de conter com bordas pretas (Contain), preencher cortando sobras (Cover) ou esticar (Stretch).
  • Inversão Rápida de Cores: Com um único clique em "Inverter Cores (Negativo)", você troca instantaneamente os pixels pretos pelos brancos e vice-versa, poupando edições externas.
  • Pré-visualização Pixel-Perfect: Um canvas de renderização customizado simula exatamente como a imagem ficará no seu painel LED/OLED, permitindo notar perdas de legibilidade antes de compilar o código. Se a sua intenção for criar algo puramente artístico antes de trazer para cá, recomendamos testar antes o Transformador de Imagem em Pixel Art.
  • Mapeamento Dinâmico de Matriz: O código gera tanto mapeamento por paginação horizontal (tradicional) quanto varredura de coluna vertical, garantindo 100% de compatibilidade com qualquer driver gráfico do mercado.
  • Monitor de Peso (Bytes): Visualize dinamicamente quantos bytes da memória do seu microcontrolador esse array irá consumir (algo vital para chips com memória restrita como o Arduino Uno).

Privacidade e Segurança: Processamento 100% Local

Temos um compromisso rigoroso com a sua privacidade. Nenhum arquivo de imagem é enviado para nossos servidores. Todo o cálculo da matriz de bytes, redimensionamento, aplicação de limiares e geração do código C/C++ ocorre localmente usando a engine Javascript do seu próprio navegador. Além disso, você pode checar informações internas de fotos privadas de forma segura com o nosso Visualizador de Metadados EXIF, garantindo que nada saia da sua máquina antes da compilação.

FAQ - Perguntas Frequentes

Essa ferramenta serve para qualquer display OLED ou LCD?

Sim. A saída padrão gera um array de bytes que contém informações binárias genéricas (aceso ou apagado). Isso é perfeito para telas monocromáticas SSD1306, SH1106, Nokia 5110 e e-Paper (e-Ink). Dependendo da biblioteca que você usar no Arduino, basta escolher entre a exportação "Horizontal" ou "Vertical".

Qual a diferença entre Mapeamento Horizontal e Vertical?

Diferentes bibliotecas leem arrays de forma distinta. Bibliotecas baseadas na Adafruit_GFX (como a Adafruit_SSD1306) esperam que os bytes representem pixels agrupados horizontalmente, lidos da esquerda para a direita. Já a biblioteca U8g2 tradicionalmente opera por páginas (colunas de 8 pixels na vertical). Se a imagem aparecer corrompida ou como "ruído estático" na sua tela, provavelmente a orientação selecionada está invertida; tente alterar esse mapeamento e gerar o código novamente.

Minha imagem ficou muito escura ou ilegível no Preview, o que fazer?

Imagens coloridas complexas ou fotos reais perdem qualidade quando reduzidas a duas cores. Para corrigir isso, utilize a barra de Limiar de Preto/Branco para calibrar exatamente em que tom de cinza um pixel deve acender. Se necessário, aumente o Contraste da imagem ou ajuste o Brilho para forçar o destaque de silhuetas. O segredo é simplificar a imagem original o máximo possível. Se você estiver exibindo a matriz em um monitor para teste antes de passar pro Arduino, utilize o nosso Teste de Monitor (Burn-in test) para garantir calibração.

Qual a diferença entre exportar em Hexadecimal ou Binário?

Eles têm exatamente o mesmo resultado para o microcontrolador, a diferença é apenas na legibilidade humana do código. O formato Hexadecimal (ex: 0xFF) é muito mais compacto e deixa seu arquivo menor e mais organizado na IDE. O formato Binário (ex: 0b11111111) é excelente didaticamente, pois se você olhar de longe, os 1s e 0s formam o desenho da sua matriz no próprio código, mas o arquivo de texto final fica bem mais longo.

Posso converter várias imagens de uma vez para fazer animações no Arduino?

Atualmente, a ferramenta otimiza e mapeia uma imagem por vez para garantir a maior precisão no processamento individual e ajuste fino de limiar. Para fazer GIFs ou frames, processe as imagens importantes do seu sprite sheet uma a uma e agrupe os arrays resultantes no seu arquivo .h. Mas se você precisa apenas reduzir o tamanho de muitas imagens de lote antes do processo, experimente usar o nosso Minificador de Imagens em Massa (Bulk Image Compressor).

0 Visualizações
27/06/2026

O que você achou desta ferramenta?

0.0
Média de avaliações 0 voto(s)

Comentários sobre a Ferramenta

Ferramentas que você também pode gostar