随笔 - 750  文章 - 1  评论 - 107  阅读 - 34万

【转】【Java】二维码生成及图片合成

转自:https://blog.csdn.net/Alian_1223/article/details/117332164

在 pom.xml 引入 maven 配置:

复制代码
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.4.1</version>
</dependency>

<!--如果时web项目时导入javase-->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.4.1</version>
</dependency>
复制代码

然后在 Maven 面板点击 重新加载所有 Maven 项目:

 接下来就可以绘制二维码:

复制代码
// 二维码绘制
try {
    var map = new HashMap<EncodeHintType, Object>();
    map.put(EncodeHintType.MARGIN, 0);
    var matrix = new MultiFormatWriter().encode("二维码内容", BarcodeFormat.QR_CODE, 200, 200, map);
    var qr = MatrixToImageWriter.toBufferedImage(matrix);
    g2d.drawImage(qr, 20, 20, null);
} catch (WriterException e) {
    throw new RuntimeException(e);
}
复制代码

代码片段中,200 是二维码大小,20 是二维码在画布中位置,g2d 是画布的 Graphics 对象,可以这样创建画布:

var image = new BufferedImage(600, 600, BufferedImage.TYPE_INT_RGB);
var g2d = image.createGraphics();
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

输出到文件:

// 输出到文件
File file = new File("D:\\qr.png");
try {
    ImageIO.write(image, "png", file);
} catch (IOException ex) {
    ex.printStackTrace();
}

或者绘制在现有图片上:

var image2 = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
var g2 = image2.createGraphics();
g2.drawImage(image, 0, 0, null);
g2.dispose();

 

posted on   z5337  阅读(161)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2018-06-26 [转][html]设置IIS 默认页
2014-06-26 [转]C#调用Excel VBA宏
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示