10時間以上検索して試した後、最終的にここで質問することにしました. ライブラリを使用してandroid.hardware.camera2
、デバイスのカメラから画像を取得しています。zxingライブラリを使用して、ビットマップを自動的に処理し、画像にデータマトリックスコードがある場合はそれをデコードしたいと考えています。画像を 1 秒間に 5 回処理するタイマーがあり、すべて正常に動作しますが、datamatrix コードを認識しません。今まで私は次のコードを持っています:
public String readDataMatrix(Bitmap bitmap) {
int width = bitmap.getWidth(),
height = bitmap.getHeight();
int[] pixels = new int[width * height];
bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
RGBLuminanceSource source = new RGBLuminanceSource(width, height, pixels);
BinaryBitmap bBitmap = new BinaryBitmap(new HybridBinarizer(source));
DataMatrixReader reader = new DataMatrixReader();
Result rawResult = null;
try {
rawResult = reader.decode(bBitmap);
String result = reader.decode(bBitmap).getText();
return result;
} catch (NotFoundException | ChecksumException | FormatException e) {
e.printStackTrace();
}
if (rawResult != null) {
Log.i(TAG, "==============================================");
Log.i(TAG, rawResult.getText());
Log.i(TAG, "==============================================");
}
return rawResult != null ? rawResult.getText() : null;
}
DataMatrixReader
これは、qrコードに置き換えてQRCodeReader
試したり、 で試したりしても機能しませんMultiFormatReader
。
私が処理しようとしているすべての画像は、zxing バーコード スキャナー アプリによって適切にデコードされているため、問題はコードにあります。
この後、私はcreatively-cursing-javaの世界チャンピオンになると信じているので、誰かがこれがどのように機能するかを教えてくれたらとても嬉しいです^^
Benni
PS:zxingに関するすべてのスレッドですべてのソリューションを試したので、これ本当に私の最後の選択でした。