Search in sources :

Example 1 with MultiFormatOneDReader

use of com.google.zxing.oned.MultiFormatOneDReader in project zxing by zxing.

the class MultiFormatReader method setHints.

/**
   * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
   * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
   * is important for performance in continuous scan clients.
   *
   * @param hints The set of hints to use for subsequent calls to decode(image)
   */
public void setHints(Map<DecodeHintType, ?> hints) {
    this.hints = hints;
    boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
    @SuppressWarnings("unchecked") Collection<BarcodeFormat> formats = hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
    Collection<Reader> readers = new ArrayList<>();
    if (formats != null) {
        boolean addOneDReader = formats.contains(BarcodeFormat.UPC_A) || formats.contains(BarcodeFormat.UPC_E) || formats.contains(BarcodeFormat.EAN_13) || formats.contains(BarcodeFormat.EAN_8) || formats.contains(BarcodeFormat.CODABAR) || formats.contains(BarcodeFormat.CODE_39) || formats.contains(BarcodeFormat.CODE_93) || formats.contains(BarcodeFormat.CODE_128) || formats.contains(BarcodeFormat.ITF) || formats.contains(BarcodeFormat.RSS_14) || formats.contains(BarcodeFormat.RSS_EXPANDED);
        // Put 1D readers upfront in "normal" mode
        if (addOneDReader && !tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        if (formats.contains(BarcodeFormat.QR_CODE)) {
            readers.add(new QRCodeReader());
        }
        if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
            readers.add(new DataMatrixReader());
        }
        if (formats.contains(BarcodeFormat.AZTEC)) {
            readers.add(new AztecReader());
        }
        if (formats.contains(BarcodeFormat.PDF_417)) {
            readers.add(new PDF417Reader());
        }
        if (formats.contains(BarcodeFormat.MAXICODE)) {
            readers.add(new MaxiCodeReader());
        }
        // At end in "try harder" mode
        if (addOneDReader && tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    if (readers.isEmpty()) {
        if (!tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        readers.add(new QRCodeReader());
        readers.add(new DataMatrixReader());
        readers.add(new AztecReader());
        readers.add(new PDF417Reader());
        readers.add(new MaxiCodeReader());
        if (tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    this.readers = readers.toArray(new Reader[readers.size()]);
}
Also used : QRCodeReader(com.google.zxing.qrcode.QRCodeReader) DataMatrixReader(com.google.zxing.datamatrix.DataMatrixReader) AztecReader(com.google.zxing.aztec.AztecReader) ArrayList(java.util.ArrayList) MaxiCodeReader(com.google.zxing.maxicode.MaxiCodeReader) AztecReader(com.google.zxing.aztec.AztecReader) DataMatrixReader(com.google.zxing.datamatrix.DataMatrixReader) MultiFormatOneDReader(com.google.zxing.oned.MultiFormatOneDReader) PDF417Reader(com.google.zxing.pdf417.PDF417Reader) QRCodeReader(com.google.zxing.qrcode.QRCodeReader) MultiFormatOneDReader(com.google.zxing.oned.MultiFormatOneDReader) PDF417Reader(com.google.zxing.pdf417.PDF417Reader) MaxiCodeReader(com.google.zxing.maxicode.MaxiCodeReader)

Example 2 with MultiFormatOneDReader

use of com.google.zxing.oned.MultiFormatOneDReader in project weex-example by KalicyZhou.

the class MultiFormatReader method setHints.

/**
   * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
   * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
   * is important for performance in continuous scan clients.
   *
   * @param hints The set of hints to use for subsequent calls to decode(image)
   */
public void setHints(Map<DecodeHintType, ?> hints) {
    this.hints = hints;
    boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
    @SuppressWarnings("unchecked") Collection<BarcodeFormat> formats = hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
    Collection<Reader> readers = new ArrayList<Reader>();
    if (formats != null) {
        boolean addOneDReader = formats.contains(BarcodeFormat.UPC_A) || formats.contains(BarcodeFormat.UPC_E) || formats.contains(BarcodeFormat.EAN_13) || formats.contains(BarcodeFormat.EAN_8) || formats.contains(BarcodeFormat.CODABAR) || formats.contains(BarcodeFormat.CODE_39) || formats.contains(BarcodeFormat.CODE_93) || formats.contains(BarcodeFormat.CODE_128) || formats.contains(BarcodeFormat.ITF) || formats.contains(BarcodeFormat.RSS_14) || formats.contains(BarcodeFormat.RSS_EXPANDED);
        // Put 1D readers upfront in "normal" mode
        if (addOneDReader && !tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        if (formats.contains(BarcodeFormat.QR_CODE)) {
            readers.add(new QRCodeReader());
        }
        if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
            readers.add(new DataMatrixReader());
        }
        if (formats.contains(BarcodeFormat.AZTEC)) {
            readers.add(new AztecReader());
        }
        if (formats.contains(BarcodeFormat.PDF_417)) {
            readers.add(new PDF417Reader());
        }
        if (formats.contains(BarcodeFormat.MAXICODE)) {
            readers.add(new MaxiCodeReader());
        }
        // At end in "try harder" mode
        if (addOneDReader && tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    if (readers.isEmpty()) {
        if (!tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        readers.add(new QRCodeReader());
        readers.add(new DataMatrixReader());
        readers.add(new AztecReader());
        readers.add(new PDF417Reader());
        readers.add(new MaxiCodeReader());
        if (tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    this.readers = readers.toArray(new Reader[readers.size()]);
}
Also used : QRCodeReader(com.google.zxing.qrcode.QRCodeReader) DataMatrixReader(com.google.zxing.datamatrix.DataMatrixReader) AztecReader(com.google.zxing.aztec.AztecReader) ArrayList(java.util.ArrayList) MaxiCodeReader(com.google.zxing.maxicode.MaxiCodeReader) AztecReader(com.google.zxing.aztec.AztecReader) DataMatrixReader(com.google.zxing.datamatrix.DataMatrixReader) MultiFormatOneDReader(com.google.zxing.oned.MultiFormatOneDReader) PDF417Reader(com.google.zxing.pdf417.PDF417Reader) QRCodeReader(com.google.zxing.qrcode.QRCodeReader) MultiFormatOneDReader(com.google.zxing.oned.MultiFormatOneDReader) PDF417Reader(com.google.zxing.pdf417.PDF417Reader) MaxiCodeReader(com.google.zxing.maxicode.MaxiCodeReader)

Aggregations

AztecReader (com.google.zxing.aztec.AztecReader)2 DataMatrixReader (com.google.zxing.datamatrix.DataMatrixReader)2 MaxiCodeReader (com.google.zxing.maxicode.MaxiCodeReader)2 MultiFormatOneDReader (com.google.zxing.oned.MultiFormatOneDReader)2 PDF417Reader (com.google.zxing.pdf417.PDF417Reader)2 QRCodeReader (com.google.zxing.qrcode.QRCodeReader)2 ArrayList (java.util.ArrayList)2