我正在创建一个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来增加堆大小。