欢迎来到风的博客

今天讲的是如何引用google的zxing库实现扫描二维码和生成带logo的二维码,源码库可以从github上下载[https://github.com/zxing/zxing];在文章结尾也会分享我的Demo
喜欢请关注我[http://myfengnull.github.io/]

扫描二维码
  Intent startScan = new Intent(MainActivity.this,CaptureActivity.class);startActivity(startScan);
生成不带logo的二维码
  String in = input.getText().toString();if (in.equals("")) {Toast.makeText(MainActivity.this, "请输入文本", Toast.LENGTH_SHORT).show();}try {//TODO 也可以生成二维码
//                    Bitmap qrcod = EncodingHandler.createQRCode(in, 400);
//                    img.setImageBitmap(qrcod);// 写入数据信息到图片int width = 400, height = 400;QRCodeWriter writer = new QRCodeWriter();//把内容编码BitMatrix matrix = writer.encode(in, BarcodeFormat.QR_CODE, width, height);int ms[] = new int[width * height];//变换赋值for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {if (matrix.get(x, y)) {//黑点ms[y * width + x] = 0xff000000;} else {//白点ms[y * width + x] = 0xffffffff;}}}//TODO 缓存Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);image.setPixels(ms, 0, width, 0, 0, width, height);//TODO 展示图片img.setImageBitmap(image);FileOutputStream out = new FileOutputStream("/sdcard/code2.png");//TODO 压缩image.compress(Bitmap.CompressFormat.PNG, 100, out);Log.e("MMMM", "创建成功");} catch (WriterException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}}
带logo的二维码
 //Todo 带logo的二维码@Overridepublic void onClick(View v) {String in = input.getText().toString();if (in.equals("")) {Toast.makeText(MainActivity.this, "请输入文本", Toast.LENGTH_SHORT).show();}try {// 写入数据信息到图片int width = 400, height = 400;QRCodeWriter writer = new QRCodeWriter();//把内容编码BitMatrix matrix = writer.encode(in, BarcodeFormat.QR_CODE, width, height);int ms[] = new int[width * height];//变换赋值for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {if (matrix.get(x, y)) {//黑点ms[y * width + x] = 0xff000000;} else {//白点ms[y * width + x] = 0xffffffff;}}}//TODO 缓存Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);image.setPixels(ms, 0, width, 0, 0, width, height);//logo地址Bitmap logo = BitmapFactory.decodeFile("/sdcard/gur03.png");image = insertLogo(image, logo);//TODO 展示图片img.setImageBitmap(image);//存储生成的二维码地址FileOutputStream out = new FileOutputStream("/sdcard/code2.png");//TODO 压缩image.compress(Bitmap.CompressFormat.PNG, 100, out);Log.e("MMMM", "创建成功");} catch (WriterException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}}public Bitmap insertLogo(Bitmap src, Bitmap logo) {// 获取到两张图片的宽高int width = src.getWidth();int height = src.getHeight();int gwidth = logo.getWidth();int gheight = logo.getHeight();// 大小图片的比例float scale = width * 1.0f / 5 / gwidth;// 工作缓冲区Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 获取缓冲区的画布Canvas ca = new Canvas(bitmap);// 话大图片ca.drawBitmap(src, 0, 0, null);ca.scale(scale, scale, width / 2, height / 2);// 话小图片ca.drawBitmap(logo, (width - gwidth) / 2, (height - gheight) / 2, null);// 保存所画内容ca.save(Canvas.ALL_SAVE_FLAG);// 还原画布ca.restore();return bitmap;}

注意利用画布将图片覆盖在生成的二维码上,图片是30*30的,
原理是二维码中间有可以忽略的阴影
app引用BarCodeTest类库
Demo下载地址:https://github.com/MyfengNull/QrCode

本文原创下载请注明出处

实现扫描二维码和生成带logo的二维码相关推荐

  1. Android Studio 扫描识别二维码(包含闪光灯和本地二维码)、生成二维码、生成带logo的二维码

    一.测试如下: 1.扫描识别二维码,扫描结果多少 2.生成二维码.生成带logo的二维码 二.添加依赖: 1.在Project的build.gradle中添加maven { url 'https:// ...

  2. asp.net 后台生成二维码及生成带logo的二维码

    asp.net 后台生成二维码及生成带logo的二维码,此处将生成二维码和带Logo的二维码写在一起的,需要自己区分一下. 直接上代码 using System; using System.Colle ...

  3. Android Studio 生成二维码、生成带logo的二维码

    1.生成二维码: 2.生成logo的二维码: 一.引入依赖 首先在libs文件目录下放进jar包zxing.jar,要下载zxing.jar就点击链接:下载zxing.jar(记得点击"Cd ...

  4. iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))

    原文链接:http://www.jianshu.com/p/36e9f012ef39 生成带 logo 的二维码 区域截屏相关 -- 由3033分享 开篇 最近项目需要搞了几个相对独立的小功能,今天有 ...

  5. zxing生成带logo的二维码

    倒Zxing依赖 implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.2.1' 代码段 import android.graphics.Bitma ...

  6. 使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小

    使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小  * 可选是否带logo,可选是否保存二维码图片:结果返回base64编码的图片数据字符串  * 页面显示:< ...

  7. JAVA使用barcode4j生成条形码和二维码图片以及带logo的二维码,验证码图片

    二维码 1.Maven引入barcode4j依赖 <!-- 条形码生成 --><dependency><groupId>net.sf.barcode4j</g ...

  8. vue 生成带logo的二维码 qrcode-vue 支持下载图片 实例详解

    最近的项目上有个需求,生成带logo的二维码,网上大部分都是基于JQ插件jQuery.qrcode.对于vue项目并不适用,翻阅了大量资料后,我找到了qrcode-vue这款基于vue的生成二维码的插 ...

  9. Golang使用qrcode生成二维码,以及生成带logo的二维码

    添加并引用依赖 go get github.com/boombuler/barcodeimport ("github.com/skip2/go-qrcode" ) 1.生成字节形式 ...

最新文章

  1. 怎么查看和修改 MySQL 的最大连接数?
  2. parallel-comparator-200-攻防世界-逆向(简单易懂)
  3. Vue中进行断点调试的两种方式(使用外部浏览器和VsCode的 Debug for Chrome插件)
  4. java 判断一个字符串是否由数字组成的_Java中怎样判断一个字符串是否是数字
  5. ASP游戏工作室网站源码v1.0
  6. leetcode —— 1217. 玩筹码
  7. 数据结构之栈的应用(算术计算)
  8. 线性表:5.约瑟夫环,循环链表及其C语言实现
  9. Java中String连接性能的分析
  10. Android中RelativeLayout及TableLayout使用说明
  11. 哪款投影仪做家庭影院效果好?家用投影仪哪个好
  12. C#装箱(Boxing)和拆箱(Unboxing)
  13. OpenCV用FAST、SURF、SIFT、BRISK、ORB等进行特征点提取与匹配
  14. ESXI虚拟机搭建华三vFW2000虚拟防火墙
  15. 计算机条件函数ppt,EXCEL常用函数教程PPT讲课课件_计算机硬件及应用_IT/计算机_资料(2)...
  16. JAVA基础加强篇09——IO流
  17. android智能电灯,X-Light智能灯泡
  18. php中car是什么意思,car是什么意思_car在线翻译_英语_读音_用法_例句_海词词典
  19. python就业需要的技能_教你如何快速掌握Python就业技能
  20. 青蛙游戏 linux,小青蛙2048

热门文章

  1. 怎么在cmd连接mysql_如何用cmd连接Mysql数据库
  2. 决策树:CART决策树剪枝算法(超详细)
  3. arcgis js for JavaScript 4.X 3D小车移动轨迹动画
  4. bilibili手机端追剧在哪里?
  5. python变量名称引用变量_Python:按变量名引用对象属性?
  6. Cesium for UE4 加载离线地形和影像
  7. Python-Web开发基础-HTML
  8. AE常见问题合集,适合初学者
  9. 读屏时代,我们正在陷入一场悄无声息的自杀!
  10. 微型计算机主机能玩荒野行动吗,《荒野行动》PC版什么配置能玩?