Google zxing api не может декодировать штрих-код - PullRequest
0 голосов
/ 04 сентября 2018

Я использую google zxing api для java для декодирования изображения png штрих-кода. Код приведен ниже. Функция new MultiFormatReader (). Decode (bitmap) .getText ()) не работает должным образом для всех изображений штрих-кода. Пожалуйста, дайте мне знать, если требуются какие-либо дополнительные сведения, и если есть лучший способ декодировать изображения со штрих-кодом с помощью Google ZXING.

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.imageio.ImageIO;

import org.apache.commons.codec.BinaryDecoder;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;

public class DecodeBarcode {

    public static void main(String[] args) throws IOException {
        BufferedImage qrCodeImage = null;
        DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        Date date = new Date();
        String imgname = "img_file_name.png";
        qrCodeImage = ImageIO.read(new File("C:/Users/pathToTheFile/" + imgname));

        try {
            LuminanceSource source = new BufferedImageLuminanceSource(qrCodeImage);
            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
            System.out.println("Decoded text===>" + new MultiFormatReader().decode(bitmap).getText());


        } catch (NotFoundException e) {
            System.out.println("barcode was not decoded successfully");
        }
    }

}
...