RBGLuminanceSource.toString 在图像尺寸过大时抛出 StackOverflowError
RBGLuminanceSource.toString is throwing StackOverflowError when dimensions of image are big
我不明白为什么会收到 WhosebugError。我正在尝试从图像构建位图以扫描二维码。 来自 decode() 方法的源代码 以标准方式构建:
if (bitmap != null) {
int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()];
bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
return new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray);
并且比 decode() 抛出错误:
来源:方法抛出“java.lang'WhosebugError'异常。无法计算 com.google.zxing.RGBLuminanceSource.toString()
private QRCodeMultiReader qrCodeReader;
public void decode(LuminanceSource source, ScannerResultListener resultListener) {
try {
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
String decodedContent = qrCodeReader.decode(bitmap, hints).getText();
Timber.d("qr code scanner has successfully decoded content: [%s]", decodedContent);
resultListener.onScanningSuccess(decodedContent);
} catch (ReaderException re) {
Timber.d(re.getMessage(), "qr code scanner can not decode code");
resultListener.onScanningFailure();
} finally {
qrCodeReader.reset();
}
}
只有当我上传大尺寸图片(例如 1242x2688px)时才会发生。当我将上传的图像缩小到 2160 像素的高度时,一切正常,并且图像被正确扫描。
我找不到任何关于 zxing 维度限制的信息。
有人知道这是为什么吗?
问题已解决。
我不得不将 Zxing 库升级到更新版本。在我的问题中,3.3.1 就足够了。
但较新的库需要 SDK 19+。
我不明白为什么会收到 WhosebugError。我正在尝试从图像构建位图以扫描二维码。 来自 decode() 方法的源代码 以标准方式构建:
if (bitmap != null) {
int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()];
bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
return new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray);
并且比 decode() 抛出错误: 来源:方法抛出“java.lang'WhosebugError'异常。无法计算 com.google.zxing.RGBLuminanceSource.toString()
private QRCodeMultiReader qrCodeReader;
public void decode(LuminanceSource source, ScannerResultListener resultListener) {
try {
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
String decodedContent = qrCodeReader.decode(bitmap, hints).getText();
Timber.d("qr code scanner has successfully decoded content: [%s]", decodedContent);
resultListener.onScanningSuccess(decodedContent);
} catch (ReaderException re) {
Timber.d(re.getMessage(), "qr code scanner can not decode code");
resultListener.onScanningFailure();
} finally {
qrCodeReader.reset();
}
}
只有当我上传大尺寸图片(例如 1242x2688px)时才会发生。当我将上传的图像缩小到 2160 像素的高度时,一切正常,并且图像被正确扫描。 我找不到任何关于 zxing 维度限制的信息。
有人知道这是为什么吗?
问题已解决。 我不得不将 Zxing 库升级到更新版本。在我的问题中,3.3.1 就足够了。 但较新的库需要 SDK 19+。