1. 这里介绍三种二维码的制作方法
现在有很多二维码的软件所有这篇博客是给大家了解一下它的一些原理:
第一种的制作需要在官网上下载 zxing 的一个源码文件, 这个可以直接在百度可以下载的
下载好了
第一步需要的是把 zxing-zxing-3.3.3//core/src//main//java//com 和 zxing-zxing-3.3.3//javase//src//main//java//com 这两个文件复制到新建的项目中, 放入到项目中这时系统会报错, 这个错误我们先不管它. 直接把这个项目给导出, 选择 jar file 一直点下一步就可以了, 在 Finish 的
时候在 Options 的选项框中勾选第一个就可以了. 这个时候导出已经完成了
现在就进入了
第二步了; 新建一个项目把刚才的导出的 jar 包导入到新建的项目中
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Path;
- import java.util.HashMap;
- 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;
- import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
- /**
- * 生成二维码
- * @author Administrator
- *
- */
- public class CreateQRCode { public static void main(String[] args) {
- int width=300;
- int height=300;
- String format="png";
- String content="http://www.baidu.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 bit=new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height);
- Path file=new File("d://text//img.png").toPath();
- MatrixToImageWriter.writeToPath(bit, format, file);
- } catch (WriterException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
第一种就已经实现了
下面介绍第二种的方法:
第二种要导入 Qrcode 的 jar 包, 这种的源码不好下载
所以这你就直接写代码了:
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.UnsupportedEncodingException;
- import javax.imageio.ImageIO;
- import com.swetake.util.Qrcode;
- public class text {
- public static void main(String[] args) throws Exception {
- Qrcode x=new Qrcode();
- x.setQrcodeErrorCorrect('M');// 纠错等级
- x.setQrcodeEncodeMode('B');//N 代表数字 A 代表 a-z,B 代表其他字符
- x.setQrcodeVersion(7);// 版本号
- String str="www.imoo .com";
- int width=67+12*(7-1);
- int height=67+12*(7-1);
- BufferedImage bu=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
- //java 的画图
- Graphics2D gs=bu.createGraphics();
- gs.setBackground(Color.WHITE);
- gs.setColor(Color.BLACK);
- gs.clearRect(0, 0, width, height);
- int pi=2;// 偏移量
- //gb2312 转汉字
- byte[] by=str.getBytes("gb2312");
- if(by.length>0 && by.length<120) {
- boolean[][] s=x.calQrcode(by);
- for (int i = 0; i <s.length; i++) {
- for (int j = 0; j < s.length; j++) {
- if(s[j][i]) {
- gs.fillRect(j*3+pi, i*3+pi, 3, 3);
- }
- }
- }
- }
- gs.dispose();
- bu.flush();
- ImageIO.write(bu, "png", new File("d://JA//er.png"));
- }
- }
ImageIO.write(bu, "png", new File("d://JA//er.png")); 这是二维码产生的图片地址路径
第二种用的不多, 只供大家参考就行了
下面直接进入到第三种方法: 是通过 jquery 框架来实现的:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
- <title>Insert title here</title>
- <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery.min.js"></script>
- <script type="text/javascript" src="<%=request.getContextPath() %>/sAjs/jquery.qrcode.min.js"></script>
- </head>
- <body>
- <div id="qrcode"></div>
- <script type="text/javascript">
- jQuery("#qrcode").qrcode("http://www.baidu.com");
- </script>
- </body>
- </html>
以上就是三种的写法哦
来源: http://www.bubuko.com/infodetail-2696527.html