Decodificador de Código de Barras
Decodifique códigos de barras de imagens online. Carregue, arraste e solte ou cole imagens. Tudo no navegador.
Arraste e solte uma imagem de código de barras aqui
Suporta PNG, JPG, GIF, BMP, WebP e outros formatos de imagem comuns
Você também pode usar Ctrl+V para colar uma imagem da área de transferência
O que é um Decodificador de Código de Barras?
Um decodificador de código de barras é uma ferramenta que lê e decodifica imagens de códigos de barras para recuperar seu conteúdo original. Ao carregar uma imagem contendo um código de barras, a ferramenta reconhece automaticamente e decodifica as informações numéricas ou de texto armazenadas. Suporta formatos comuns de códigos de barras 1D, incluindo CODE128, EAN-13, EAN-8, CODE39, UPC e mais. Esta ferramenta é executada inteiramente no navegador — suas imagens nunca saem do seu dispositivo. Ao decodificar códigos de barras, nitidez, contraste, rotação, recorte e tipo de código influenciam muito o resultado. Um valor reconhecido deve ser comparado com tamanho esperado e dígito verificador em inventário, tickets, frete ou dados de produto. A ferramenta ajuda a ler rapidamente fotos ou capturas, mas não substitui scanners profissionais em processos de alto volume.
Como Usar
Como usar
- Clique na área de upload para selecionar uma imagem de código de barras ou arraste e solte uma imagem.
- Você também pode usar Ctrl+V (Cmd+V no Mac) para colar uma imagem da área de transferência.
- A ferramenta detecta e decodifica automaticamente o conteúdo do código de barras.
- O resultado decodificado aparece abaixo, mostrando o formato do código de barras e o tipo de conteúdo.
- Clique em 'Copiar Resultado' para copiar o conteúdo decodificado ou abra a URL diretamente, se for um link.
Dicas de Decodificação
- Use uma imagem nítida e de alto contraste com o código de barras totalmente visível; desfoque, reflexos, cortes e forte distorção de perspectiva reduzem a precisão do reconhecimento.
- Se uma URL ou código de produto for decodificado, verifique o destino ou identificador antes de usá-lo em registros de produção.
Casos de uso
Princípio técnico
Um código de barras 1D (UPC, EAN, Code 39, Code 128, ITF, Codabar) é uma sequência de barras paralelas e espaços cujas larguras codificam dígitos, letras ou todo o intervalo ASCII. Um código de barras 2D (QR Code, Data Matrix, PDF417, Aztec) é um padrão bidimensional de módulos (células) dispostos em uma zona de silêncio, geralmente com três padrões de detecção de posição nos cantos para orientação. A decodificação de um código de barras é o processo inverso: imagem → pré-processamento → localizar o símbolo → medir larguras de barras/espacos (ou amostrar a grade 2D) → consultar a tabela de codificação → aplicar um checksum para validar o resultado. O pipeline de imagem é importante. A imagem de origem passa por conversão para tons de cinza (luma = 0,299 R + 0,587 G + 0,114 B, os pesos Rec. 601), depois um limiar global ou adaptativo (o método Otsu escolhe um limiar que maximiza a variância inter-classes, que funciona para a maioria das digitalizações bem iluminadas; o limiar adaptativo de Sauvola lida melhor com iluminação irregular). Detecção de bordas (kernel Sobel: 3x3 Gx e Gy) encontra transições verticais de barras; uma transformada de Hough nessas linhas fornece a orientação; a análise de componentes conectados então encontra o retângulo delimitador do símbolo. A zona de silêncio (a margem em branco obrigatória ao redor do símbolo, 10x a dimensão X para QR Code, 9x a largura da barra para Code 128) é verificada antes que o símbolo seja aceito como um candidato válido. Para códigos 1D, o decodificador mede a dimensão X (a largura da barra mais estreita, a unidade de comprimento) e lê as larguras barra-espaço como múltiplos de X. Um caractere Code 39 é composto por 9 barras + 9 espaços (um dos quais é um intervalo inter-caractere); 3 dos 9 elementos são largos (representando 1) e 6 são estreitos (representando 0). Um caractere Code 128 é composto por 11 módulos: um padrão de início, 6 barras/espacos codificados e um padrão de parada. Cada caractere é portanto 11 módulos; 11 x contagem_de_caracteres + 13 (para início + parada + verificação + silêncio) fornece a largura do símbolo. Code 128 tem três conjuntos de codificação: A (maiúsculas + controle), B (maiúsculas + minúsculas), C (dígitos em pares 00-99) — códigos de troca de conjunto permitem que o codificador escolha o conjunto mais eficiente por substring. Para códigos 2D, o algoritmo é diferente. QR Code usa correção de erros Reed-Solomon (níveis EC L/M/Q/H adicionam 7%, 15%, 25%, 30% de redundância) e um padrão de máscara configurável (um dos 8; o codificador escolhe aquele que minimiza a pontuação de penalidade). Após a aplicação da máscara, o fluxo de bits é colocado em uma grade quadrada de 21x21 (Versão 1) até 177x177 (Versão 40) módulos; os três padrões de busca 7x7 nos cantos e os padrões de alinhamento 5x5 nos cantos internos fornecem orientação e escala. Data Matrix usa um layout semelhante com uma borda sólida em forma de L em dois lados e alternância claro/escuro nos outros dois. PDF417 é um código linear empilhado (17 módulos de largura, até 90 linhas) usado em carteiras de motorista dos EUA e cartões de embarque de companhias aéreas. Esta página usa a biblioteca ZXing ('Zebra Crossing'), um decodificador multi-formato de código aberto Apache-2.0 originado do projeto Google ZXing. O ZXing executa o pipeline completo (localizar → pré-processamento → decodificar) e tenta cada simbologia conhecida em sequência. Suporta UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, QR Code, Data Matrix, PDF417 e Aztec. Para códigos 2D, a taxa de sucesso em boa iluminação é de ~99% em uma foto 1080p; para códigos 1D é menor (~85-95%) porque perspectiva, desfoque e reflexo distorcem as larguras das barras. Esta ferramenta aceita apenas entrada por imagem (upload de arquivo, arrastar e soltar ou colar da área de transferência); não oferece leitura ao vivo por câmera. Os checksums são importantes. UPC/EAN usam um único dígito verificador módulo 10 (soma dos dígitos em posições ímpares x 3 + soma dos dígitos em posições pares, módulo 10, subtraído de 10). Code 128 usa um caractere verificador módulo 103. Code 39 não requer um dígito verificador, mas o verificador mod-43 é recomendado para logística. QR Code usa EC Reed-Solomon; se o decodificador EC encontrar mais erros do que o código pode corrigir, a decodificação falha. A página exibe as falhas de decodificação com o motivo (incompatibilidade de checksum, zona de silêncio muito pequena, conflito de máscara) quando a biblioteca o expõe.
- Códigos de barras 1D (UPC, EAN, Code 39, Code 128, ITF) codificam dados em larguras de barra/espaço; códigos 2D (QR Code, Data Matrix, PDF417, Aztec) codificam em uma grade 2D de módulos. Ambos precisam de uma zona de silêncio de ~10x a largura da unidade para serem válidos.
- Pipeline de imagem: tons de cinza Rec. 601 (0,299R + 0,587G + 0,114B) → limiar Otsu ou Sauvola → detecção de bordas Sobel → transformada de Hough para orientação → análise de componentes conectados para encontrar a caixa delimitadora do símbolo.
- Code 128 tem 3 conjuntos de codificação: A (maiúsculas + controle), B (maiúsculas + minúsculas), C (dígitos em pares 00-99). Códigos de troca de conjunto permitem que o codificador escolha o conjunto mais compacto por substring, comprimindo UPC-A '123456789012' mais que o Code 39 faria.
- Code 39: 9 barras + 9 espaços por caractere, 3 largos (1) e 6 estreitos (0); caractere de início/parada '*'. Dígito verificador mod-43 opcional. Amplamente usado em indústria automotiva, defesa e governo dos EUA (MIL-STD-1189).
- Code 93 é o predecessor do Code 128, com 9 módulos por caractere (6 dados + início/parada) e 47 caracteres únicos; foi substituído pelo Code 128 na maioria das aplicações, mas ainda é encontrado em algumas farmácias canadenses e aplicações do USPS.
- QR Code: EC Reed-Solomon nos níveis L/M/Q/H (7%/15%/25%/30% de redundância), 8 padrões de máscara, 21x21 a 177x177 módulos (Versão 1 a 40). Três padrões de busca 7x7 nos cantos fornecem orientação; padrões de alinhamento 5x5 em versões maiores corrigem distorção de perspectiva.
- Data Matrix: borda sólida em forma de L em dois lados, alternância claro/escuro nos outros dois; usado para marcação de itens pequenos em eletrônica e farmacêutica (ISO/IEC 16022).
- ZXing ('Zebra Crossing', Apache-2.0, Google): o decodificador multi-formato de código aberto usado aqui. Suporta UPC-A/E, EAN-8/13, Code 39/93/128, ITF, Codabar, QR Code, Data Matrix, PDF417 e Aztec. Esta ferramenta decodifica apenas a partir de arquivos de imagem (upload, arrastar e soltar ou colar da área de transferência); não oferece leitura ao vivo por câmera.
- Checksums: UPC/EAN usam mod-10, Code 128 usa mod-103, Code 39 usa mod-43 opcional, QR Code usa EC Reed-Solomon. Uma incompatibilidade de checksum indica que a imagem está corrompida, não que os dados estão errados.
Exemplos
Reconhecimento de código de barras de produto
Envie a foto de um produto de supermercado, decodifique o código de barras EAN-13 para obter 6901234567890 e depois pesquise nome do produto, fabricante, preço etc.Recuperação de número de rastreamento
Fotografe o código de barras da etiqueta de envio, decodifique para obter um número de rastreamento como SF1234567890 e digite no site da transportadora para verificar o status logísticoDecodificação de ISBN de livro
Escaneie o código de barras na contracapa do livro, decodifique o número ISBN como 9787111234567 e pesquise no banco de dados de livros para obter informações detalhadasPerguntas frequentes
Quais formatos de código de barras são decodificados?
Códigos 1D comuns como CODE 128, EAN-13, EAN-8, UPC-A, UPC-E, CODE 39, CODE 93, ITF (Interleaved 2 of 5), Codabar, mais códigos 2D como QR Code, Data Matrix, Aztec e PDF417. A página usa a biblioteca ZXing no seu navegador para detectar e decodificar todos esses formatos a partir de uma única imagem enviada.
A imagem é enviada para decodificação?
Não. A decodificação acontece inteiramente no seu navegador via WebAssembly ou JavaScript puro. Solte a imagem e os bytes são lidos localmente; nada é enviado a um servidor. Você pode verificar pela aba Network do navegador.
Por que meu código de barras não é decodificado?
Causas comuns: a imagem está borrada, o código está rotacionado mais do que o decodificador permite, o contraste é muito baixo ou há reflexos. Tente cortar mais perto do código, aumentar o brilho/contraste e garantir que a imagem tenha pelo menos 200-300 pixels de largura para o código completo. Códigos impressos em papel brilhante e fotografados sob luz direta costumam falhar.
Quais formatos de imagem são aceitos?
PNG, JPEG, GIF, WebP e BMP são suportados. Envie um arquivo, arraste e solte ou cole da área de transferência. A imagem é lida em um canvas oculto para decodificação — nada é enviado a um servidor.
O que o resultado inclui?
O conteúdo de texto decodificado e o formato detectado do código. Se o texto decodificado for uma URL, aparece um botão para abri-la em uma nova aba. A contagem de caracteres e o nome do formato também são exibidos.
Os dígitos verificadores do EAN-13 são validados?
O ZXing só retorna um resultado quando o código de barras passa em suas verificações internas, incluindo o dígito verificador do formato. Se a decodificação falhar, a página mostra "No barcode detected", sem distinguir entre uma imagem ilegível e um erro de checksum.
Posso decodificar vários códigos de barras de uma só imagem?
A página detecta o código mais nítido da imagem. Para imagens com vários códigos, recorte cada um individualmente e envie-os separadamente para resultados mais confiáveis.