我正在创建一个android项目,主要功能是扫描条形码。

我尝试将Zxing库集成到我的项目中,并且工作正常。

但是,似乎不支持从android设备库中的可用图像扫描条形码。

我该怎么办?或与其他条形码库一起使用?

最佳答案

您可以使用ZXing库中的此类MultiFormatReader

您必须在BitMap中获取Gallery图像并将其转换为:

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();

UPDATE1

要处理大图像,请查看:

https://developer.android.com/training/articles/memory.html

https://developer.android.com/training/displaying-bitmaps/manage-memory.html

您可以使用此属性android:largeHeap来增加堆大小。

10-08 09:10