如何制作一个应用程序,能够从条形码图像中扫描条形码,条形码取自Android手机本身的SD卡?

时间:2016-01-06 09:29:18

标签: java android barcode zxing

我的要求是,打开应用程序后会出现一个按钮,打开相机应用程序并拍下两个条形码,然后该位图将被提供给我的应用程序,条形码解码器将解码这两个条形码并显示结果! 可能吗? 如果是,那怎么样?

2 个答案:

答案 0 :(得分:0)

当然有可能。

有许多条形码解码库,如https://github.com/zxing/zxing/ 集成库,按照其教程并将位图传递给它。然后在解码后显示结果。

答案 1 :(得分:0)

你可以,试试ZXing Librery的MultiFormatReader

示例代码

try
{
    InputStream inputStream = activity.getContentResolver().openInputStream(uri);
    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
    if (bitmap == null)
    {
        Log.e(TAG, "uri is not a bitmap," + uri.toString());
        return null;
    }
    int width = bitmap.getWidth(), height = bitmap.getHeight();
    int[] pixels = new int[width * height];
    bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
    bitmap.recycle();
    bitmap = null;
    RGBLuminanceSource source = new RGBLuminanceSource(width, height, pixels);
    BinaryBitmap bBitmap = new BinaryBitmap(new HybridBinarizer(source));
    MultiFormatReader reader = new MultiFormatReader();
    try
    {
        Result result = reader.decode(bBitmap);
        return result;
    }
    catch (NotFoundException e)
    {
        Log.e(TAG, "decode exception", e);
        return null;
    }
}
catch (FileNotFoundException e)
{
    Log.e(TAG, "can not open file" + uri.toString(), e);
    return null;
}