2017-10-11 3 views
-1

Je dois lire un code à barres à partir d'un fichier image téléchargé pour une application Web Java. J'ai essayé Zxing et d'autres bibliothèques similaires, mais cela ne fonctionnera que si nous téléchargeons des images précises. Quelqu'un pourrait-il suggérer une API pour lire le code à barres d'une image? L'image peut être cliquée de manière aléatoire et contenir d'autres données. À partir de là, nous devons identifier le code à barres et le décoder.Lecture d'un code à barres à partir d'une image téléchargée dans Java

Répondre

0

Comme vous n'avez pas fourni beaucoup d'informations, je vais essayer de vous aider avec ce que je pense que le problème est.

Je pense que ZXing devrait être la bonne solution. Le décodeur de codes à barres recherche le code à barres dans une image par défaut. Si vous avez une image qui contient uniquement le code à barres, vous pouvez définir l'indice PURE_BARCODE pour accélérer le décodage. Il ne peut y avoir de problèmes que si vous avez plusieurs codes à barres dans une seule image.

Votre problème semble être l'image téléchargée pas ZXing. Je suggère de vérifier si l'image est téléchargée correctement.

Voici un exemple de décodage d'une image tamponnée avec un lecteur ZXing.

public void decodeCode() throws IOException, NotFoundException, FormatException, ChecksumException { 
    BufferedImage image = ImageIO.read(yourImage); 
    BinaryBitmap bitmap = convertImageToBinaryBitmap(image); 
    Result result = reader.decode(bitmap, hints); 

    assertNotNull("DecoderResult must not be null", result); 
    System.out.println(result.getText()); 
    } 

protected BinaryBitmap convertImageToBinaryBitmap(BufferedImage image) { 
    int[] pixels = image.getRGB(0, 0, 
           image.getWidth(), image.getHeight(), 
           null, 0, image.getWidth()); 
    RGBLuminanceSource source = new RGBLuminanceSource(image.getWidth(), 
                 image.getHeight(), 
                 pixels); 
    return new BinaryBitmap(new HybridBinarizer(source)); 
    }