Pessoal, eu tenho como pegar uma foto de um código de barras de um boleto (tipo: 2 de 5 intercalado) e o java tentar me retornar os valores desse
código de barra ?
Ler código de barras a partir de uma imagem
3 Respostas
Se for um código de barras de boletos, você tem de levar em conta que quando ele é impresso, ele tem pelo menos 407 pixels por 57 pixels. Quando você fotografa um código de barras, precisa levar em conta que você tem de ter pixels suficientes para que a distinção entre os 4 tipos de barras (barra branca larga, barra branca estreita, barra preta larga, barra preta estreita) deve ser bem nítida, ou seja, provavelmente você terá de ter uma foto em que o código ocupe pelo menos 2000 pixels na direção horizontal (5 vezes o número absolutamente mínimo de pixels para representar a imagem). Isso quer dizer que um celular com 4 megapixels é suficiente? Ainda acho que não , mas você precisaria fazer vários testes para ver se não vai ter muitos problemas - como eu disse antes, um código de barras de boletos não tem dígitos de verificação suficientes para corrigir eventuais erros de leitura.
Se o Bradesco tem um aplicativo desses, provavelmente ele deve testar a resolução da câmera do seu celular.
Se a resolução for muito baixa, não dá para garantir que ele vai conseguir ler o código adequadamente.
Procure pela especificação do código 2 de 5 intercalado - você vai descobrir que a codificação é bastante simples, e o trabalho pesado vai ser tratar a imagem para achar o tal código de barras no meio da imagem, e então determinar a largura das barras pretas e brancas para montar o código.
utiliza esse cara aqui
http://www.onbarcode.com/products/java_barcode_reader/
importa ele no teu projeto
Barcode1DReader BcReader=new Barcode1DReader();
Image imagem=loadImage(“imagem.jpg”);
BarcodeData[] barcodes=BcReader.scan(new RImage((BufferedImage) imagem));
acho que fica mais ou menos assim