二维码概述

二维码又称QR Code,QR全称Quick Response,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。

zxing

1、引入pom文件

<!-- zxing -->
<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.2.1</version>
</dependency>
<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.2.1</version>
</dependency>

2、生成和读取二维码

/*** 生成二维码*/
public class CreateQrCode {public static void main(String[] args) {int width = 300;int height = 300;String format = "png";String content = "www.shuai.com";//定义二维码的参数HashMap map = new HashMap();//设置编码map.put(EncodeHintType.CHARACTER_SET, "utf-8");//设置纠错等级map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);map.put(EncodeHintType.MARGIN, 2);try {//生成二维码BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height);Path file = new File("E:/develop/qrcode.png").toPath();MatrixToImageWriter.writeToPath(bitMatrix, format, file);} catch (WriterException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}/*** 读取二维码*/
public class ReadQrCode {public static void main(String[] args) {try {MultiFormatReader multiFormatReader = new MultiFormatReader();File file = new File("E:/develop/qrcode.png");BufferedImage image = ImageIO.read(file);//定义二维码参数Map hints = new HashMap();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//获取读取二维码结果BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));Result result = multiFormatReader.decode(binaryBitmap, hints);System.out.println("读取二维码: " + result.toString());System.out.println("二维码格式: " + result.getBarcodeFormat());System.out.println("二维码内容: " + result.getText());} catch (NotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}

qrcodejar

1、引入qrcode的jar
2、生成二维码,解析二维码

/*** 二维码图片*/
public class MyQrCodeImage implements QRCodeImage{BufferedImage bufferedImage;public MyQrCodeImage(BufferedImage bufferedImage) {this.bufferedImage = bufferedImage;}public int getHeight() {return bufferedImage.getHeight();}public int getPixel(int arg0, int arg1) {return bufferedImage.getRGB(arg0, arg1);}public int getWidth() {return bufferedImage.getWidth();}}/*** 生成二维码*/
public class CreateQrCode {public static void main(String[] args) throws IOException {Qrcode x = new Qrcode();x.setQrcodeErrorCorrect('M');//设置纠错等级x.setQrcodeEncodeMode('B');//N代表数字,A代表a-Z,B代表其它字符x.setQrcodeVersion(7);//设置版本String qrData = "www.shuai.com";int width = 67 + 12 * (7 - 1);int height = 67 + 12 * (7 - 1);BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics2D gs = bufferedImage.createGraphics();//设置画笔gs.setBackground(Color.WHITE);gs.setColor(Color.BLACK);gs.clearRect(0, 0, width, height);int pixoff = 2;//偏移量byte[] d = qrData.getBytes("gbk");if (d.length > 0 && d.length < 120) {boolean[][] s = x.calQrcode(d);for (int i = 0; i < s.length; i++) {for (int j = 0; j < s.length; j++) {if (s[j][i]) {//往画板中填充内容gs.fillRect(j*3+pixoff,i*3+pixoff,3,3);}}}}gs.dispose();bufferedImage.flush();ImageIO.write(bufferedImage, "png", new File("E:/develop/code.png"));}
}/*** 读取二维码*/
public class ReadQrCode {public static void main(String[] args) throws IOException {File file = new File("E:/develop/code.png");BufferedImage bufferedImage = ImageIO.read(file);Qrcode qrcode = new Qrcode();QRCodeDecoder codeDecoder = new QRCodeDecoder();String result = new String(codeDecoder.decode(new MyQrCodeImage(bufferedImage)),"GBK");System.out.println(result);}
}

jquery.qrcode.js

1、引入jquery.min.js、jquery.qrcode.min.js
2、页面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>二维码</title>
<% String path = request.getContextPath();String bathPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort(); pageContext.setAttribute("path", path);pageContext.setAttribute("bathPath", bathPath);
%>
<script type="text/javascript" src="${path }/js/jquery.min.js"></script>
<script type="text/javascript" src="${path }/js/jquery.qrcode.min.js"></script>
</head>
<body>生成的二维码: <br/><div id="qrcode"></div><script type="text/javascript">$('#qrcode').qrcode("www.shuai.cn");</script>
</body></html>

Java实现二维码制作相关推荐

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

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

  2. java-简单二维码制作

    main测试方法  方法一 public static void main(String[] args) throws Exception { final int width = 300; final ...

  3. 二维码制作(QRCode)

    目前社会中使用二维码的行业越来越多,如何制作二维码也是一个很有用的事情. 小小的二维码,是如何保存各种数据的呢?这是不是一件很神奇的事情呀! 那么我们就来一起学习如何制作神奇的二维码吧. 二维码的概念 ...

  4. 二维码制作并压缩下载

    需求:制作出多张二维码,并且压缩后下载.下载下来的压缩包解压后二维码能正常扫码 引入二维码制作的jar包 <dependency><groupId>com.google.zxi ...

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

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

  6. Java实现二维码技术探讨。

    Java生成二维码方法有三种: 1: 使用SwetakeQRCode在Java项目中生成二维码  http://swetake.com/qr/ 下载地址  或着http://sourceforge.j ...

  7. Java实现二维码生成

    title: Java实现二维码生成 categories: "Java" 前言 日前生活上存在很多扫描二维码的场景,支付.加好友-等操作都需要扫描二维码,然后我就在想Java能不 ...

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

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

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

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

  10. 怎么做二维码?二维码制作的简单方法

    二维码在日常的用途非常的广泛,比如付款二维码,信息统计二维码,问卷调查二维码,网页跳转二维码...都是常见的二维码类型.通过扫码识别来进行操作,让生活更加的便利,那么这些二维码是如何制作出来的呢?下面 ...

最新文章

  1. 训练LaneATT遇到CUDA_HOME环境变量问题
  2. Verilog中的逻辑运算符与按位运算符的区分
  3. java程序不能编译_救命-JAVA程序不能编译!
  4. ffmpeg的map参数
  5. SpringBoot2.0之六 多环境配置
  6. python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】
  7. wordpress安装记录
  8. elasticsearch 7.0.1 + kibana + elasticsearch-analysis-ik 7.0.0 安装和配置过程中问题备忘录...
  9. newifi路由器 php,新路由newifi固件下载
  10. 超定方程 matlab,Matlab求解超定方程组实例(精品文档)
  11. 锂电快充方案:TypeC-PD/QC诱骗芯片的常用型号,升降压(充电)芯片选型
  12. Linux 命令小记
  13. PLSQL自动登录,记住用户名密码日常使用技巧
  14. tabLayout当tab数目较多,一屏无法展示时,按键有时会没有反应
  15. [UVA156]反片语 Ananagrams 题解(映射:map 详解)
  16. linux创建文件软链接命令,Linux创建文件或目录软链接、硬链接的技巧
  17. 数论的巴拉拉魔法大门就此打开,请收下这波来自数论的友好邀请信,准备变身各位小魔仙噗哈哈哈哈
  18. 【Win7下安装Ubuntu双系统后出现Win7未激活解决办法】
  19. MCMC/论文-2021年11月30日
  20. 解决Pycharm输入法无法切换中英文

热门文章

  1. 陈一舟:以前创业占地就行 现在要做游击队
  2. 手机如何把图片转Word文档?使用这种方法非常方便
  3. git 创库命令使用
  4. 解决fullpage滑动,控制台的报错提示
  5. 在java中重写方法应遵循规则的包括_蘑菇街2017校园招聘笔试题
  6. pvr.ccz文件转png方法
  7. 中移物联网2018笔试题
  8. EFF希望NSA销毁长达14年的电话监控记录
  9. python提取图片文字_python实现提取图片中文字
  10. 详解Linux运维工程师必备技能