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>
以上就是三种的写法哦
原文地址:https://www.cnblogs.com/shuiqian/p/9352246.html
时间: 2024-09-30 07:37:07