网站首页 > java教程 正文
第一步 生成 二维码
/**
* 生成二维码矩阵信息
*
* @param content 二维码图片内容
* @param width 二维码图片宽度
* @param height 二维码图片高度
*/
public static BitMatrix setBitMatrix(String content, int width, int height) {
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 指定编码方式,防止中文乱码
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 指定纠错等级
hints.put(EncodeHintType.MARGIN, margin); // 指定二维码四周白色区域大小
BitMatrix bitMatrix = null;
try {
bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
} catch (WriterException e) {
e.printStackTrace();
}
return bitMatrix;
}
第二步 保存二维码
/**
* 生成海报二维码
*
* @param content
* @param width
* @param height
* @return
*/
public static String setQRCodeHB(String content, int width, int height) {
String format = "jpg" ;
BitMatrix bitMatrix = setBitMatrix(content, width, height);
// 可通过输出流输出到页面,也可直接保存到文件
OutputStream outStream = null;
String fileName = "qrcode/" + new Date().getTime() + ".jpg" ;
String path = "/profile/test/" + fileName;
try {
outStream = new FileOutputStream(new File(path));
writeToFile(bitMatrix, format, outStream, null);
outStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return path;
}
第三步 合成海报
/**
* 生成邀请好友海报
*
* @param code
* @return
* @throws IOException
*/
public static String drawImage(String code) throws IOException {
//海报背景
String backgroundImageUrl = "huanyinshiyong" ;
// 二维码
String qrCodeImageUrl = setQRCodeHB("www.baidu.com", 115, 115);
String nameText = code;
int width = 750;
int height = 1060;
//创建空画布
BufferedImage bgBufImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// RGB形式
Graphics2D bgBufImageGraphics = bgBufImage.createGraphics();
//设置背景图片
BufferedImage posterImage = ImageIO.read(new URL(backgroundImageUrl));
bgBufImageGraphics.drawImage(posterImage, 0, 0, 750, 1060, null);
//设置二维码
BufferedImage qrCodeImage = ImageIO.read(new File(qrCodeImageUrl));
bgBufImageGraphics.drawImage(qrCodeImage, 560, 902, 115, 115, null);
Font font = new Font("宋体", Font.PLAIN, 24);
bgBufImageGraphics.setFont(font);
//内容
bgBufImageGraphics.drawString(nameText, 400, 945);
bgBufImageGraphics.dispose();
String file = "HB/" + new Date().getTime();
ImageIO.write(bgBufImage, "png", new File("/profile/test/" + file + ".jpg"));
System.out.println("生成图片完成");
return "/profile/test/" + file + ".jpg" ;
}
- 上一篇: 用Java实现仿x宝产品卡片制作教程,附源码
- 下一篇: 使用Java 8函数式编程生成字母序列
猜你喜欢
- 2024-09-27 运维干货来啦:Jenkins+gradlew自动构建android项目提供下载链接和二维码下载
- 2024-09-27 基于 Spring Boot 和 WxJava 实现网站接入微信扫码登录
- 2024-09-27 基于token的多平台身份认证架构设计
- 2024-09-27 在线二维码生成器有哪些?微信二维码转换成链接如何实现?
- 2024-09-27 扫二维码提货系统自己建,系统搭建与操作指南分享
- 2024-09-27 PDF文件添加二维码水印(pdf二维码怎么弄出来扫码)
- 2024-09-27 掏出手机,扫一扫,即刻登录——SpringBoot实现二维码扫码登录
- 2024-09-27 短连接生成器有哪些?制作二维码生成器有哪些?
- 2024-09-27 慕课网Java相关课程学习项目源码,以及源码地址
- 2024-09-27 二维码扫描优化(微信二维码优化)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)