Android二维码生成_QRCodeWriter二维码识别与解析开发
2015-08-02 10:15:12 By: shinyuu
本Demo是一个利用QRCodeWriter编写的二维码的生成和解析的小例子、并将图片保存到本地、代码也很简单、都是封装的方法、很好理解、基本上下载源代码就可以很清楚的理解代码、并且能快速的集成到自己的项目中、下载看一下Demo例子
生成QR二维码代码
private void createImage() { try { // 需要引入core包 QRCodeWriter writer = new QRCodeWriter(); String text = qr_text.getText().toString(); Log.i(TAG, "生成的文本:" text); if (text == null || "".equals(text) || text.length() < 1) { return; } // 把输入的文本转为二维码 BitMatrix martix = writer.encode(text, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT); System.out.println("w:" martix.getWidth() "h:" martix.getHeight()); Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints); int[] pixels = new int[QR_WIDTH * QR_HEIGHT]; for (int y = 0; y < QR_HEIGHT; y ) { for (int x = 0; x < QR_WIDTH; x ) { if (bitMatrix.get(x, y)) { pixels[y * QR_WIDTH x] = 0xff000000; } else { pixels[y * QR_WIDTH x] = 0xffffffff; } } } bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT); System.out.println(Environment.getExternalStorageDirectory()); qr_image.setImageBitmap(bitmap); try { saveMyBitmap(bitmap, "code"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (WriterException e) { e.printStackTrace(); } }
解析QR图片代码
private void scanningImage() { Hashtable<DecodeHintType, String> hints = new Hashtable<DecodeHintType, String>(); hints.put(DecodeHintType.CHARACTER_SET, "utf-8"); // 获得待解析的图片 Bitmap bitmap = ((BitmapDrawable) qr_image.getDrawable()).getBitmap(); RGBLuminanceSource source = new RGBLuminanceSource(bitmap); BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source)); QRCodeReader reader = new QRCodeReader(); Result result; try { result = reader.decode(bitmap1); result=reader.decode(bitmap1, hints ); // 得到解析后的文字 qr_result.setText(result.getText()); } catch (NotFoundException e) { e.printStackTrace(); } catch (ChecksumException e) { e.printStackTrace(); } catch (FormatException e) { e.printStackTrace(); } }
到此为止、以前就是生成二维码和解析二维码的代码了、详细的代码大家可以下载源代码研究
另外以前也分享过一个通过联图生成二维码的例子:http://dwtedx.com/itshare_261.html
若资源对你有帮助、扫描下方的二维码、关注DD博客微信公众号(ddblogs)吧
最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看
源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1gd2I3RH 密码: c932
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛