二维码让我们的生活变得更加方便更加高速,现在就来教大家怎么制作用java来制作二维码当然,网上有很多工具可以一键生成二维码,很方便的,但是,它的局限性也是显而易见的,只能手动生成。因为在开发中有些时候系统需要动态生成生成二维码,作为it人员你必须get这些技能
一,作为java程序员,写代码之前除了导包还是导包
要导的包:QRCode.jar(作为程序员别问我包在哪下)
二,除了写代码还是写代码
import com.swetake.util.Qrcode; | |
import javax.imageio.ImageIO; | |
import javax.servlet.http.HttpServlet; | |
import java.awt.*; | |
import java.awt.image.BufferedImage; | |
import java.io.File; | |
import java.io.IOException; | |
/** | |
* Created by Administrator on 2017/4/1. | |
*/ | |
public class QrCodeImg extends HttpServlet { | |
//设定宽高 | |
final static int HEIGHT = 236; | |
final static int WIDTH = 236; | |
final static String CONTENT = "扫码后跳转的链接或者内容"; | |
final static String PATH = "web/image/QrCodeImg.png";//生成二维码存放路径 | |
/** | |
* 生成二维码 | |
*/ | |
public static void getQrCodeImg() throws IOException { | |
//实例化一个QrCode | |
Qrcode qrcode = new Qrcode(); | |
//排错率M代表15% | |
qrcode.setQrcodeErrorCorrect('M'); | |
//编码集 | |
qrcode.setQrcodeEncodeMode('B'); | |
//二维码的版本 | |
qrcode.setQrcodeVersion(15); | |
//创建一个画板 | |
BufferedImage bufferedImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); | |
//创建画笔 | |
Graphics2D graphics2D = bufferedImage.createGraphics(); | |
//设置背景色 | |
graphics2D.setBackground(Color.white); | |
//创建二维码区域 | |
graphics2D.clearRect(0, 0, WIDTH, HEIGHT); | |
//设置内容颜色 | |
graphics2D.setColor(Color.black); | |
//获取内容的字节数据,设置字符编码 | |
byte[] contentBytes = CONTENT.getBytes("utf-8"); | |
boolean[][] codeOut = qrcode.calQrcode(contentBytes); | |
int offset = 3; //设置偏移量 | |
//绘制二维码内容 | |
for (int i = 0; i < codeOut.length; i++) { | |
for (int j = 0; j < codeOut.length; j++) { | |
if (codeOut[i][j]) { | |
graphics2D.fillRect(j*3+ offset,i*3+ offset, 3, 3); | |
} | |
} | |
} | |
//释放资源,清空缓存 | |
graphics2D.dispose(); | |
bufferedImage.flush(); | |
//写出二维码 | |
File imgFile = new File(PATH); | |
ImageIO.write(bufferedImage, "png", imgFile); | |
} | |
} |
三,拿手机扫码测试