import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.Image;

phpqrcodelogo圆角JAVA Qrcode实现带有logo的二维码源码 JavaScript

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import com.swetake.util.Qrcode;

public class QrcodeUtil {

public static void main(String[] args) throws IOException {

//调用天生二维码的方法

getorcodeImg(\"大众https://www.toutiao.com/c/user/16038770057/#mid=1571462165285889\"大众,\"大众D:/qrcode.png\"大众,\公众G:/qrlogo.png\公众);

}

/

制作二维码(喜好的话右上角关注)

@param content 扫描二维码将要跳转的地址

@param imgPath 生产二位码的地址和名称

@param logoPath 二维码中间的那个图片地址

@throws IOException

/

public static void getorcodeImg(String content,String imgPath,String logoPath) throws IOException {

Qrcode qr = new Qrcode();

//vs是版本号

int vs =20;

//API文档规定打算二维码图片宽高的办法

int width = 67 + 12 (vs - 1);

int height = 67 + 12 (vs - 1);

/

纠错等级分为

level L : 最大 7% 的缺点能够被纠正;

level M : 最大 15% 的缺点能够被纠正;

level Q : 最大 25% 的缺点能够被纠正;

level H : 最大 30% 的缺点能够被纠正;

/

qr.setQrcodeErrorCorrect('L');

//设置编码格式

qr.setQrcodeEncodeMode('B');

//设置版本号 1-40

qr.setQrcodeVersion(vs);

//汉字转格式须要抛出非常

byte[] con = content.getBytes(\"大众utf-8\"大众);

//缓冲区(面板)

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);

//绘图(画笔)

Graphics2D gs = bufferedImage.createGraphics();

//设置背景色

gs.setBackground(Color.WHITE);

//设置绘制内容的颜色

gs.setColor(Color.BLACK);

//设置二维码绘制区域

gs.clearRect(0, 0, width, height);

//是否会引起字符串长度大于120导致天生代码不实行,二维码空缺

if (con.length > 0 && con.length < 120) {

boolean[][] qrc = qr.calQrcode(con);

for (int i = 0; i < qrc.length; i++) {

for (int j = 0; j < qrc.length; j++) {

if (qrc[j][i]) {

gs.fillRect(j3+2, i3+2, 3, 3);

}

}

}

}

//添加水印图片(logo)

File logoFile=new File(logoPath);

Image srcimage=ImageIO.read(logoFile);

//logo的宽高

int lgWidth=srcimage.getWidth(null);

int lgHeight=srcimage.getHeight(null);

gs.drawImage(srcimage, (width-lgWidth)/2, (height-lgHeight)/2, lgWidth, lgHeight,null);

gs.dispose();

bufferedImage.flush();

//设置图片格式,与输出的路径

ImageIO.write(bufferedImage, \公众png\"大众, new File(imgPath));

System.out.println(\公众二维码完成\"大众);

}

}

新手上路多多关注,持续更新。
分享一些事情中碰着的问题都会记录下来,和一些好的资源都会分享给大家。
希望多多支持小编。