jimu-decompiled/sources/com/google/zxing/pdf417/PDF417Reader.java
2025-05-13 19:24:51 +02:00

74 lines
3.4 KiB
Java

package com.google.zxing.pdf417;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.ChecksumException;
import com.google.zxing.DecodeHintType;
import com.google.zxing.FormatException;
import com.google.zxing.NotFoundException;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.ResultMetadataType;
import com.google.zxing.ResultPoint;
import com.google.zxing.common.DecoderResult;
import com.google.zxing.multi.MultipleBarcodeReader;
import com.google.zxing.pdf417.decoder.PDF417ScanningDecoder;
import com.google.zxing.pdf417.detector.Detector;
import com.google.zxing.pdf417.detector.PDF417DetectorResult;
import java.util.ArrayList;
import java.util.Map;
/* loaded from: classes.dex */
public final class PDF417Reader implements Reader, MultipleBarcodeReader {
private static int b(ResultPoint resultPoint, ResultPoint resultPoint2) {
if (resultPoint == null || resultPoint2 == null) {
return Integer.MAX_VALUE;
}
return (int) Math.abs(resultPoint.a() - resultPoint2.a());
}
@Override // com.google.zxing.Reader
public Result a(BinaryBitmap binaryBitmap, Map<DecodeHintType, ?> map) throws NotFoundException, FormatException, ChecksumException {
Result[] a = a(binaryBitmap, map, false);
if (a == null || a.length == 0 || a[0] == null) {
throw NotFoundException.getNotFoundInstance();
}
return a[0];
}
@Override // com.google.zxing.Reader
public void reset() {
}
private static int b(ResultPoint[] resultPointArr) {
return Math.min(Math.min(b(resultPointArr[0], resultPointArr[4]), (b(resultPointArr[6], resultPointArr[2]) * 17) / 18), Math.min(b(resultPointArr[1], resultPointArr[5]), (b(resultPointArr[7], resultPointArr[3]) * 17) / 18));
}
private static Result[] a(BinaryBitmap binaryBitmap, Map<DecodeHintType, ?> map, boolean z) throws NotFoundException, FormatException, ChecksumException {
ArrayList arrayList = new ArrayList();
PDF417DetectorResult a = Detector.a(binaryBitmap, map, z);
for (ResultPoint[] resultPointArr : a.b()) {
DecoderResult a2 = PDF417ScanningDecoder.a(a.a(), resultPointArr[4], resultPointArr[5], resultPointArr[6], resultPointArr[7], b(resultPointArr), a(resultPointArr));
Result result = new Result(a2.h(), a2.e(), resultPointArr, BarcodeFormat.PDF_417);
result.a(ResultMetadataType.ERROR_CORRECTION_LEVEL, a2.b());
PDF417ResultMetadata pDF417ResultMetadata = (PDF417ResultMetadata) a2.d();
if (pDF417ResultMetadata != null) {
result.a(ResultMetadataType.PDF417_EXTRA_METADATA, pDF417ResultMetadata);
}
arrayList.add(result);
}
return (Result[]) arrayList.toArray(new Result[arrayList.size()]);
}
private static int a(ResultPoint resultPoint, ResultPoint resultPoint2) {
if (resultPoint == null || resultPoint2 == null) {
return 0;
}
return (int) Math.abs(resultPoint.a() - resultPoint2.a());
}
private static int a(ResultPoint[] resultPointArr) {
return Math.max(Math.max(a(resultPointArr[0], resultPointArr[4]), (a(resultPointArr[6], resultPointArr[2]) * 17) / 18), Math.max(a(resultPointArr[1], resultPointArr[5]), (a(resultPointArr[7], resultPointArr[3]) * 17) / 18));
}
}