小工具知识网

当前位置: 首页 > 行业知识 > Android 二维码相关(二)

行业知识

Android 二维码相关(二)

2026-11-12 06:25:09 来源:互联网转载

Android 二维码相关(二)

���篇文章继续讲述下如何使用zxing解析二维码图片,获取内容.

()

1: 创建RGBLuminanceSource对象.

首先获取二维码图片的bitmap对象.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.test);

根据getPixels()获取位图指定区域的像素颜色值.

()
int width = srcBitmap.getWidth();int height = srcBitmap.getHeight();int[] pixels = new int[width * height];bitmap.getPixels(pixels, 0, width, 0, 0, width, height);

//使用pixels数组创建RGBLuminanceSource对象

RGBLuminanceSource rgbLuminanceSource = new RGBLuminanceSource(width, height, pixels);

2: 获取BinaryBitmap对象

BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(rgbLuminanceSource));

BinaryBitmap类的主要作用是为解码器提供一个可读取的二进制图像。

解码器可以使用BinaryBitmap来解码包含在图像中的条形码或二维码。

3: 创建解码器

MultiFormatReader类是ZXing库中的核心类之一,它可以识别和解码多种不同类型的条码和二维码.

MultiFormatReader multiFormatReader = new MultiFormatReader();

4: 解码

try {    Result decode = multiFormatReader.decode(binaryBitmap);    String text = decode.getText();    return text;} catch (Throwable e) {    Log.e(TAG, "decodeBitmap: ", e);}

完整的代码如下:

/**     * @param srcBitmap 二维码图片     * @return 文案     */    public static String decodeBitmap(Bitmap srcBitmap) {        if (srcBitmap == null) return "";        int width = srcBitmap.getWidth();        int height = srcBitmap.getHeight();        int[] pixels = new int[width * height];        srcBitmap.getPixels(pixels, 0, width, 0, 0, width, height);        //使用Bitmap对象创建RGBLuminanceSource对象,该对象将被传递给zxing库进行识别        RGBLuminanceSource rgbLuminanceSource = new RGBLuminanceSource(width, height, pixels);//BinaryBitmap类的主要作用是为解码器提供一个可读取的二进制图像。解码器可以使用BinaryBitmap来解码包含在图像中的条形码或二维码。        BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(rgbLuminanceSource));        MultiFormatReader multiFormatReader = new MultiFormatReader();        try {            Result decode = multiFormatReader.decode(binaryBitmap);            String text = decode.getText();            return text;        } catch (Throwable e) {            Log.e(TAG, "decodeBitmap: ", e);        }        return "";    }

上一篇:自助贸易网,开启便捷交易新时代的门户

下一篇:轻松获取图书秘籍,简单几步,轻松下载BOOK!