Android 二維碼相關(guān)(二)
本篇文章繼續(xù)講述下如何使用zxing解析二維碼圖片,獲取內(nèi)容.
1: 創(chuàng)建RGBLuminanceSource對(duì)象.
首先獲取二維碼圖片的bitmap對(duì)象.
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.test);
根據(jù)getPixels()獲取位圖指定區(qū)域的像素顏色值.
int width = srcBitmap.getWidth();
int height = srcBitmap.getHeight();
int[] pixels = new int[width * height];
bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
//使用pixels數(shù)組創(chuàng)建RGBLuminanceSource對(duì)象
RGBLuminanceSource rgbLuminanceSource = new RGBLuminanceSource(width, height, pixels);
2: 獲取BinaryBitmap對(duì)象
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(rgbLuminanceSource));
BinaryBitmap類的主要作用是為解碼器提供一個(gè)可讀取的二進(jìn)制圖像。
解碼器可以使用BinaryBitmap來解碼包含在圖像中的條形碼或二維碼。
3: 創(chuàng)建解碼器
MultiFormatReader類是ZXing庫(kù)中的核心類之一,它可以識(shí)別和解碼多種不同類型的條碼和二維碼.
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);
}
完整的代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-837808.html
/**
* @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對(duì)象創(chuàng)建RGBLuminanceSource對(duì)象,該對(duì)象將被傳遞給zxing庫(kù)進(jìn)行識(shí)別
RGBLuminanceSource rgbLuminanceSource = new RGBLuminanceSource(width, height, pixels);
//BinaryBitmap類的主要作用是為解碼器提供一個(gè)可讀取的二進(jìn)制圖像。解碼器可以使用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 "";
}
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!文章來源地址http://www.zghlxwxcb.cn/news/detail-837808.html
到了這里,關(guān)于Android 二維碼相關(guān)(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!