二维码应该称为二维条码,扫描之后可以获得更多数据

QR码全称为快速响应矩阵码,1994年日本一个公司发明

黑色表示1,白色表示0

3个角落比较像“回”字,叫定位点

容错机制,当7%~30%破损任可以被读取,可以利用这个机制在二维码中放入一些小的logo

最多可以存储7089个数字字符或4296个字母或1800个中文汉字(gbk)

目前在Github上最流行的java实现条形码库是:

https://github.com/zxing/zxing

javase的相关jar包下载方式相同

下面这张图片是各个包中的帮助文档,在主页面中

将两个jar包复制到java项目中,并且添加到内路径上

package com.laning.qrcode;import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;public class QRCode {private static int index =1;//main方法,方法的入口public static void main(String[] args) {String str1 = "李长斌有毛病,哈哈哈";String str2 = "刘志文有毛病,哈哈哈";String str3 = "李  明有毛病,哈哈哈";File dstfile1 = new File("E:/大一课程/java编程/JAVA生成二维码jar包");try {createQRCode(str1, dstfile1);createQRCode(str2, dstfile1);createQRCode(str3, dstfile1);} catch (WriterException | IOException e) {e.printStackTrace();}createLogoQRCode(new File("E:/大一课程/java编程/JAVA生成二维码jar包/1.jpg"), str1,dstfile1 );}//专门用于生成二维码的工具方法private static void createQRCode(String str ,File dst) throws WriterException, IOException{//该类用于多种格式二维码的编码MultiFormatWriter writer = new MultiFormatWriter();//用来设置二维码的宽高int width = 200;int height = 200;//用来设置二维码的一些属性HashMap<EncodeHintType,Object> hints = new HashMap<>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//用来编写二维码,返回二进制矩阵数据BitMatrix bitmatrix = writer.encode(str,BarcodeFormat.QR_CODE, width, height,hints);//三个参数,二进制矩阵数组,图片的格式,图片保存的路径MatrixToImageWriter.writeToPath(bitmatrix,"png",new File(dst.getPath()+"/"+(index++)+".png").toPath());}//利用二维码容错机制生成一个简单的logo的工具方法,三个参数分别是目标图片,想要展示的内容,二维码存放地址private static void createLogoQRCode(File dstimg,String str,File dst){//该类用于多种格式二维码的编码MultiFormatWriter writer = new MultiFormatWriter();//用来设置二维码的宽高int width = 200;int height = 200;//用来设置二维码的一些属性HashMap<EncodeHintType,Object> hints = new HashMap<>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//用来编写二维码,返回二进制矩阵数据BitMatrix bitmatrix = null;try {bitmatrix = writer.encode(str,BarcodeFormat.QR_CODE, width, height,hints);} catch (WriterException e1) {e1.printStackTrace();}//创建图片,宽,高,BufferedImage qr = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);for(int x=0;x<width;x++){for(int y=0;y<height;y++){if(bitmatrix.get(x, y)){//如果矩阵数组中有点的话,可以设置任意颜色qr.setRGB(x, y, 0xff0000);}else{qr.setRGB(x, y, 0xffffff);}}}Image logoUse = null;//将logo缩小,宽,高,缩小方式int logoW=30;int logoH=30;try {//读取logoBufferedImage logoImg = ImageIO.read(dstimg);logoUse = logoImg.getScaledInstance(logoW,logoH,Image.SCALE_FAST);} catch (IOException e) {e.printStackTrace();}//获取画笔Graphics g = qr.getGraphics();//绘制Logo,x坐标,y坐标int logoX = (width-logoW)/2;int logoY = (height-logoH)/2;g.drawImage(logoUse,logoX,logoY, null);try {ImageIO.write(qr, "png",new File(dst.getPath()+"/"+(index++)+".png"));} catch (IOException e) {e.printStackTrace();}}}

使用Java生成二维码相关推荐

  1. java 生成二维码 QRCode、zxing 两种方式

    版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...

  2. 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...

    二维码相关---java生成二维码名片,并且自动保存到手机通讯录中... 技术qq交流群:JavaDream:251572072 1.首先介绍一个api.   Zxing是Google提供的关于条码 ...

  3. java生成二维码打印到浏览器

    java生成二维码打印到浏览器 解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...

  4. Java生成二维码带LOGO底部标题竖版字体

    前言 Java后端生成二维码 底部 侧面带有标题,可调节字号 参考文章 使用Java生成二维码图片(亲测) Reborn_YY使用Java生成二维码图片 图标素材库 Java后台生成图片,前台实现图片 ...

  5. java生成二维码,并在前端展示。

    java生成二维码,并在前端展示,扫码实现下载功能. 后端生成二维码以流的形式 前端接收二维码并展示 后端生成二维码以流的形式 这是以流的形式展示二维码.当然也可以以文件的格式,文件格式就是Path ...

  6. java生成二维码(链接生成二维码)

    Java二维码如何生成? awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import com. ...

  7. java生成二维码到文件,java生成二维码转成BASE64

    java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...

  8. java生成二维码扫描跳转到指定的路径URL

    java生成二维码扫描跳转到指定的路径URL 导入依赖 <dependency><groupId>com.google.zxing</groupId><art ...

  9. Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码

    Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...

  10. java 生成二维码后叠加LOGO并转换成base64

    1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception {String data = ...

最新文章

  1. CornerNet代码解析——损失函数
  2. Oracle update 多表关联更新
  3. Shell-bash
  4. 实战SSM_O2O商铺_41【前端展示】店铺列表页面Dao+Service+Controller层的实现
  5. 使用TimeQuest时序分析器
  6. 视频云下半场 向前走还是向“厚”走?
  7. (转载)SpringBoot 发送邮件和附件
  8. MFC制作简易音乐播放器
  9. go 的基本数据类型
  10. SQL Server添加Check约束
  11. MFC开发上位机经验
  12. WIN7封装教程2018系列(二)—必要的系统调整
  13. LVS负载均衡群集(理论+实验)
  14. 淘淘商城第30讲——实现商品添加功能
  15. Ubuntu 20.04安装绿联PL2303串口驱动
  16. 【WPF、UWP】搜索蓝牙设备
  17. 【mmdetection】mmdetection学习率设置
  18. Linux Ubuntu18.04系统 USB转串口驱动安装,查看串口号
  19. 云效平台代码管理使用总结
  20. 阿里旺铺运营怎样做到低价引流

热门文章

  1. Charles(青花瓷)抓包
  2. 6.5 Rviz中控制机器人模型运动
  3. Android系统升级全流程
  4. dmbj.top(代码笔记) 上线啦
  5. 模拟赛20210810A T1
  6. 深度学习caffe(4)——caffe配置(GPU)
  7. vmwrare linux 下编译 出现 fatal error: error closing /tmp/ccsdc7Zt.s: No space left on device
  8. html 字号代码,html文字代码
  9. Android 中截屏功能的实现
  10. Android nck c++调用java方法