最近有个功能是提供二维码让用户进行扫码的功能,在网上看了一些大部分是用zxing.jar和javase.jar来实现的。
下面我写一段代码供大家使用,jar包或者maven项目的jar包获取方式我就放在链接里面
**Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
hints.put(EncodeHintType.MARGIN, 0);
BitMatrix bitMatrix = new QRCodeWriter().encode(url,BarcodeFormat.QR_CODE, 256, 256,hints);//这里的url是你扫码后想要跳转的路径,256分别为生成的二维码的长宽
int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) == true ?
Color.BLACK.getRGB():Color.WHITE.getRGB());
}
}
String paths = UploadPath.getNFTIMGPath(0,UploadPath.getFileName("." + "jpg"));//这个是我用来生成唯一图片名字的方式,小伙伴们可以用别的方式代替。构成是路径+图片名字
File file = new File(”+想要生成的路径+” paths);
if(!file.exists()){
//先得到文件的上级目录,并创建上级目录,在创建文件
file.getParentFile().mkdir();
try {
//创建文件
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
ImageIO.write(image,"png",file);
return paths;
**
然后我们定义一个图片服务器就可以在本地查看二维码喽。
鉴权的话,可以扫码跳转一个页面,在页面里面写一个点击事件调用我们的鉴权接口就好了。
亲测可用哦!
jar包和maven导入jar方式https://mvnrepository.com/。
<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.0</version>
</dependency>
大家从maven仓库去搜就好了,授人以鱼不如授人以渔。