版权声明 :
本文为博主原创文章,如需转载,请注明出处(https://blog.csdn.net/F1004145107/article/details/84317601)
本文包含俩部分,使用的是 java.awt.Graphics2D 类
1.生成二维码(彩色二维码,去白边)
2.将二维码、文字合成到图片上面
代码的逻辑都在注释里面了,如果有不懂的可以私信我,代码中的图片可以做测试,链接均可用
public static void main(String[] args) {
java.awt.Font font = new java.awt.Font("宋体", java.awt.Font.BOLD, 36);// 添加字体的属性设置
InputStream is = null;
try {
// 图片1
BufferedImage backImg = ImageIO.read(new URL("http://wisezhe.oss-cn-beijing.aliyuncs.com/18-11-21/87298612.jpg"));
// 图片2
String urlStr = "http://wisezhe.oss-cn-beijing.aliyuncs.com/18-11-21/59672258.jpg";
URL url = new URL(urlStr);
// 打开连接
URLConnection con = url.openConnection();
// 设置请求超时为5s
con.setConnectTimeout(5 * 1000);
// 输入流
is = con.getInputStream();
BufferedImage imageLocal = ImageIO.read(is);
// 加载用户的二维码
BufferedImage imageCode = ImageIO.read(new URL(getQrCode()));
// 创建模板
Graphics2D g = imageLocal.createGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 在模板上添加用户二维码(地址,左边距,上边距,图片宽度,图片高度),值都为像素
g.drawImage(imageCode, 474, 42, 170, 170, null);
g.setFont(font);
// 设置刷子颜色
g.setColor(new java.awt.Color(148, 134, 118));
// 添加文字
g.drawString("我是wise", 60, 129);
// 完成模板修改
g.dispose();
// 合成图片
imageLocal = PictureUtils.mergeImage(backImg, imageLocal, false, 0, 0);
// 将图片直接生成到桌面
File file = new File("C:\\Users\\Administrator\\Desktop\\test.jpg");