2017-10-11 64 views
-1

我必須從上傳的圖像文件中讀取基於java的web應用程序的條形碼。我已經嘗試過Zxing和其他類似的庫,但只有在我們上傳精確圖像時才能使用。任何人都可以建議從圖像讀取條碼的api?該圖像可以是隨機點擊的圖像,也可能包含其他數據。由此,我們必須識別條碼並對其進行解碼。從java上傳的圖像中讀取條形碼

回答

0

由於您沒有提供大量信息,我會盡力幫助您解決問題。

我覺得ZXing應該是正確的路要走。條形碼解碼器在默認情況下搜索圖像中的條形碼。如果您的圖像僅包含條形碼本身,您可以設置提示PURE_BARCODE以加速解碼。如果您在單個圖像中有多個條形碼,則只會出現問題。

你的問題似乎是上傳的圖像不是ZXing。我會建議檢查圖像是否正確上傳。

以下是使用任何ZXing閱讀器解碼BufferedImage的示例。

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)); 
    }