我想解码设置在imageView中的QR码。
我尝试了以下代码。
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
QRCodeReader reader = new QRCodeReader();
Result result = reader.decode(bitmap);
但是它说它想要BinaryBitmap而不是Bitmap。
我该怎么办?
提前致谢。
最佳答案
您可以使用ZXing库中的此类MultiFormatReader。
Bitmap bMap = [...];
String contents = null;
int[] intArray = new int[bMap.getWidth()*bMap.getHeight()];
//copy pixel data from the Bitmap into the 'intArray' array
bMap.getPixels(intArray, 0, bMap.getWidth(), 0, 0, bMap.getWidth(), bMap.getHeight());
LuminanceSource source = new RGBLuminanceSource(bMap.getWidth(), bMap.getHeight(), intArray);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new MultiFormatReader();
Result result = reader.decode(bitmap);
contents = result.getText();
关于java - 如何从imageView获取BinaryBitmap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49254867/