如何在Java中使用Zxing和JFreeSVG创建QR Code SVG?
在本文中,我们将研究如何使用Zxing QR代码生成库和JFreeSVG库在Java中创建QR Code SVG图像。
QR码生成
下面的代码使用Zxing库创建一个表示QR Code的
对象:java.awt.image.BufferedImage
public static BufferedImage getQRCode(String targetUrl, int width, int height) { try { Hashtable<EncodeHintType, Object> hintMap = new Hashtable<>(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); QRCodeWriter qrCodeWriter = Hashtable<>(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); QRCodeWriter qrCodeWriter = Hashtable<>(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix byteMatrix = qrCodeWriter.encode(targetUrl, BarcodeFormat.QR_CODE, width, height, hintMap); QRCodeWriter(); BitMatrix byteMatrix = qrCodeWriter.encode(targetUrl, BarcodeFormat.QR_CODE, width, height, hintMap); int CrunchifyWidth = byteMatrix.getWidth(); BufferedImage image = CrunchifyWidth = byteMatrix.getWidth(); BufferedImage image = new BufferedImage(CrunchifyWidth, CrunchifyWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect( BufferedImage(CrunchifyWidth, CrunchifyWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect( BufferedImage(CrunchifyWidth, CrunchifyWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect( 0 , 0 , CrunchifyWidth, CrunchifyWidth); graphics.setColor(Color.BLACK); , CrunchifyWidth, CrunchifyWidth); graphics.setColor(Color.BLACK); for ( int i = 0 ; i < CrunchifyWidth; i++) { for ( int j = 0 ; j < CrunchifyWidth; j++) { if (byteMatrix.get(i, j)) { graphics.fillRect(i, j, 1 , 1 ); } } } ); } } } return image; } image; } catch (WriterException e) { e.printStackTrace(); throw new RuntimeException( "Error getting QR Code" ); } } ); } }
转换为SVG
下面的代码片段使用JFreeSVG将
对象转换为SVG:java.awt.image.BufferedImage
public static String getQRCodeSvg(String targetUrl, int width, int height, boolean withViewBox){ SVGGraphics2D g2 = new SVGGraphics2D(width, height); BufferedImage qrCodeImage = getQRCode(targetUrl, width, height); g2.drawImage(qrCodeImage, SVGGraphics2D(width, height); BufferedImage qrCodeImage = getQRCode(targetUrl, width, height); g2.drawImage(qrCodeImage, SVGGraphics2D(width, height); BufferedImage qrCodeImage = getQRCode(targetUrl, width, height); g2.drawImage(qrCodeImage, 0 , 0 , width, height, null ); ViewBox viewBox = ); ViewBox viewBox = null ; if ( withViewBox ){ viewBox = new ViewBox( 0 , 0 ,width,height); } ,width,height); } return g2.getSVGElement( null , true , viewBox, null , null ); } ); }
完整的代码可以在这里找到。
翻译自: https://www.javacodegeeks.com/2019/04/create-code-svg-using-zxing-jfreesvg-java.html
如何在Java中使用Zxing和JFreeSVG创建QR Code SVG?相关推荐
- zxing qr区域判断_如何在Java中使用Zxing和JFreeSVG创建QR Code SVG?
zxing qr区域判断 在本文中,我们将研究如何使用Zxing QR代码生成库和JFreeSVG库在Java中创建QR Code SVG图像. QR码生成 下面的代码使用Zxing库创建一个表示QR ...
- 如何在Java中比较日期? [重复]
本文翻译自:How to compare dates in Java? [duplicate] This question already has answers here : 这个问题已经在这里有了 ...
- 如何在Java中创建一个新的List
本文翻译自:How to make a new List in Java We create a Set as: 我们创建一个Set为: Set myset = new HashSet() How d ...
- 如何在java中调用js方法
[java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...
- java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密
如何在JAVA中使用MD5加密对密码进行加密 发布时间:2020-11-25 17:12:40 来源:亿速云 阅读:118 作者:Leah 本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行 ...
- java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素
如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...
- java 中覆 写tostring_如何在Java中正确覆盖toString()?
如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...
- java soap 头_如何在Java中添加Soap标头
我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...
- java 正则表达式 开头_如何在Java中修复表达式的非法开头
java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...
最新文章
- Java中jsonObject与String等互转问题
- python学习框架图-Python学习—框架篇之初识Django
- javascript中的for in循环和for循环的使用
- 自动化构建之bower
- 本周四直播丨Oracle中为什么没有double write?那支持原子写吗?
- PHP学习总结(2)——PHP入门篇之PHP代码标识
- Android语音识别(本地+第三方)
- Android的Fragment中onActivityResult不被调用的解决方案
- nginx 域名跳转
- Windows、Linux下安装Redis图文教程
- php 读取脸型,基于OpenCV的PHP图像人脸检测识别技术
- bootice工具修复linux,系统进不去怎么办?教你利用bootice工具引导修复系统
- 转《腾讯大讲堂11 拍拍ce工作经验分享》
- matlab显示串联矩阵的维度不一致,串联的矩阵的维度不一致。
- ubuntu18.04 网络配置 ipv4ipv6DNS路由
- 【大数据】为什么要学习大数据
- AndroidManifest.xml详解(上)
- VBA的 随机数 rnd 和 randomize 如何配合使用? 伪随机数带来的问题,根据需要产生不同的随机数!
- code文件服务器异常,传奇服务器启动异常!Code1 Table does not exist
- Docker shipyard 笔记
热门文章
- ssl1072-砝码称重【dp练习】
- ssl2295-暗黑破坏神【dp练习】
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(10)Pty loves string(Border+二维数点)
- Codeforces Global Round 10
- 【并查集】【最小生成树】【贪心】给水(jzoj 2015)
- [XSY4197] Snow(树形DP)
- MySQL coalesce()函数
- js深度复制一个对象使用JSON.stringify是最好的办法吗
- binarySearch与IndexOf的那些事儿~
- java中,剩下的这两个内部类不太好理解!