【转】【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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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宏