Zxing core.jar を使用してバーコードと QR コードをスキャンしていますが、完全に機能していますが、Robolectric を使用してテストを作成し、エミュレーターやデバイスを使用せずに自動テストを実行したいと考えています。問題は、何らかの理由で zxing が .jpg ファイルからどのタイプのコード形式も検出していないことです。画像に制限サイズがあるかどうか、または他に不足しているものがあるかどうかはわかりません。検出を行うコードはこれで、jpg に変換されたフレーム プレビューで正常に動作します。
BinaryBitmap bitmap = getBitmapFromImageData(input);
Collection<BarcodeFormat> decodeFormats = getDecodeFormats();
Map<DecodeHintType, Object> hints = getHints(decodeFormats);
MultiFormatReader multiFormatReader = getMultiFormatReader(hints);
Result rawResult;
try {
rawResult = multiFormatReader.decodeWithState(bitmap);
} catch (NotFoundException e) {
// not really an error, just QR code not found
Log.e(LOG_TAG, "Code Detection not found exception.");
return null;
}
入力には jpg 形式のバイト配列が含まれ、getBitmapFromImageData によって Zxings 内部形式に変換されます。私が言ったように、ライブラリはデバイスで正常に動作していますが、PC からこのコードを実行しても機能しない論理的な理由が見つかりません。