我想解码设置在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/

10-10 03:50