如何在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将java.awt.image.BufferedImage对象转换为SVG:

 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以太网应用于控制时存在的问题

现如今&#xff0c;随着网络技术的发展&#xff0c;以太网传输可以说是深受一些大用户的喜爱&#xff0c;但是传统的以太网是一种商用网络&#xff0c;如果要应用到工业控制中还存在一些问题&#xff0c;主要有以下几个方面。接下来我们就跟随飞畅科技的小编一起来看看吧&#…

HDMI高清光端机产品特点及应用场合介绍

HDMI光端机由发送器和接收器组成&#xff0c;能通过单根光纤把计算机主机的音频&#xff0c;视频&#xff0c;USB延长到远端&#xff0c;用户可以在远端实时收听到电脑主机的图像和声音&#xff0c;并使用电脑。同时在电脑主机的近端&#xff0c;也提供了一个DVI&#xff0c;VG…

【渝粤教育】国家开放大学2018年秋季 1289T中国当代文学专题 参考试题

试卷代号&#xff1a;1301 病理生理学 试题 2019年1月 一、单项选择题&#xff08;每题2分&#xff0c;共40分&#xff09; 1.基本病理过程是指( )。 A.每一种疾病的发病机制和规律 B.机体重要系统在不同疾病中出现常见的共同的病理生理变化 C.各系统的不同疾病所共有的致病因素…

java8 base64_Java 8中的Base64 –加入乐趣为时不晚

java8 base64最后&#xff0c;Java 8发布了。 最后&#xff0c;有一种执行Base64编码的标准方法。 长期以来&#xff0c;我们一直依赖于Apache Commons Codec&#xff08;无论如何还是很棒的&#xff09;。 内存敏感的编码人员将拼命使用sun.misc.BASE64Encoder和sun.misc.BASE…

【渝粤教育】国家开放大学2018年秋季 2083T信息技术与教育技术(2) 参考试题

试卷代号&#xff1a;2099 民事诉讼法学 试题 注意事项 2019年1月 一、将你的学号、姓名及分校&#xff08;工作站&#xff09;名称填写在答题纸的规定栏内。考试结束后&#xff0c;把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完 考卷和答题纸后才可离开考…

HDMI视频光端机传输故障如何调试?

HDMI高清光端机就是光信号传输的终端设备。在广泛领域应用中&#xff0c;往往需要把HDMI信号源输送远处进行处理。最为突出的问题有&#xff1a;远处接收到的信号出现偏色、模糊&#xff0c;信号产生重影和拖尾及网纹干扰。那么&#xff0c;HDMI高清视频光端机传输故障该如何调…

【渝粤教育】国家开放大学2018年秋季 2405T现代汉语(1) 参考试题

试卷代号&#xff1a;2444 | 酒店管理概论试题 2019年1月 注意事项 一、将你的学号、姓名及分校&#xff08;工作站&#xff09;名称填写在答题纸的规定栏内。考试 结束后&#xff0c;把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完 考卷和答题纸后才可离开考…

前9个免费的Java流程监视工具以及如何选择一种

这样就可以运行Java代码了。 也许它甚至可以在生产服务器上运行。 在您完成出色工作之后&#xff0c;我们得到了好消息和令人讨厌的消息。 令人讨厌的消息是&#xff0c;现在开始调试。 就是调试和应用程序性能监视。 这意味着您不仅需要查看编写的代码&#xff0c;还可以查看…

什么是HDMI视频光端机?

HDMI高清光端机对视频音频发布等起到传输作用&#xff0c;HDMI光端机由发送器和接收器组成&#xff0c;能通过单根光纤把计算机主机的音频&#xff0c;视频&#xff0c;USB延长到远端&#xff0c;用户可以在远端实时收听到电脑主机的图像和声音&#xff0c;并使用电脑控制。那么…

【渝粤教育】国家开放大学2018年秋季 2764T饲养与饲料 参考试题

试卷代号&#xff1a;2777 绿地规划 试题 2019年1月 一、单项选择题&#xff08;每题3分&#xff0c;共30分&#xff09; 1&#xff0e;综合性公园起辅助性作用的&#xff0c;是为附近局部地区居民服务的出入口是( )。 A&#xff0e;主要出人口 B&#xff0e;次要出人口 C&…

【渝粤教育】国家开放大学2018年秋季 8038-22T实用管理基础 参考试题

试题编号&#xff1a;0850 座位号 2018-2019 学年度第一学期期末考试 电子商务概论(农) 试题 一、名词解释题: &#xff08;每题5分&#xff0c;共20分&#xff09; 1&#xff0e;制造商型配送中心&#xff1a; 电子合同&#xff1a; 搜索引擎推广&#xff1a; 4.农产品物流…

pdh光端机相关知识介绍

目前随着网络信息技术的发展&#xff0c;我们拥有了更加先进的技术运用技巧&#xff0c;其中一个就是pdh光端机的使用。我们自从使用了pdh光端机&#xff0c;对于信息的传输大大的打破了传统的信息传输的缺点。那么&#xff0c;作为一种新生的技术&#xff0c;相信大家对于它的…

【渝粤教育】国家开放大学2019年春季 0233-22T学前儿童语言教育 参考试题

试卷编号&#xff1a;0233 2018——2019学年度第二学期期末考试 学前儿童语言教育 2019年7月 1.在儿童掌握语言之前&#xff0c;有一个较长的言语发生准备阶段&#xff0c;称为“ ”。 2.学前儿童语言教育的内容应该根据教育目标来确定&#xff0c;还应该根据 和 来选择。 3.…

ClassNotFoundException:是否会减慢您的JVM?

大多数Java开发人员都熟悉臭名昭著且非常常见的java.lang.ClassNotFoundException 。 虽然通常已经很好地了解了此问题的根源&#xff08;类路径中缺少类/库&#xff0c;类加载器委派问题等&#xff09;&#xff0c;但对整体JVM和性能的影响通常是未知的。 这种情况可能会严重影…

【渝粤教育】国家开放大学2019年春季 0752-22T建筑工程资料管理 参考试题

试卷编号&#xff1a;0752 2018——2019学年度第二学期期末考试 建筑工程资料管理 2019年6月 工程资料短期保管期限是指工程档案保存_________年以下。 技术交底分为_______________、、、_____。 单位工程档案总案卷数超过________卷的&#xff0c;应编制总目录卷。 在案卷页…

pdh光端机的优点介绍

PDH光端机&#xff08;Plesiochronous Digital Hierarchy&#xff0c;准同步数字系列&#xff09;是小容量光端机&#xff0c;一般是成对应用&#xff0c;也叫点到点应用&#xff0c;容量一般为4E1&#xff0c;8E1&#xff0c;16E1。接下来杭州飞畅科技的小编来为大家详细介绍下…

【渝粤教育】国家开放大学2019年春季 1127实用卫生统计学 参考试题

试卷代号&#xff1a;1127 2019年春季学期期末统一考试 实用卫生统计学试题&#xff08;开卷&#xff09; 2019年7月 一、单项选择题&#xff08;每题2分&#xff0c;共20分&#xff09; 1.某护士记录了50名婴儿出生体重的测定结果&#xff0c;小于2500克15人&#xff0c;介于2…

什么是485光端机,485数据光端机产品介绍

485光端机&#xff0c;光纤modem&#xff0c;485光纤收发器&#xff0c;485光端机器&#xff0c;串口光端机&#xff0c;串口转光纤&#xff0c;串口光猫&#xff0c;485光纤猫&#xff0c;提供RS-232/485/422串口转光纤功能&#xff0c;实现光纤与RS-232/485/422串口的数据双向…

OpenShift Origin中的Kubernetes Spark运算符(第1部分)

本系列有关Radanalytics.io的Kubernetes Spark运算符 OpenShift起源 。 它是一个开源的运营商来管理 Apache Spark集群和应用程序。 为了在OpenShift Origin上部署操作员&#xff0c;第一次需要为其克隆GitHub存储库&#xff1a; git clone https://github.com/radanalytics…

【渝粤教育】国家开放大学2019年春季 1312学前教育原理 参考试题

试卷代号&#xff1a;1312 学前教育原理 试题 2019年7月 一、单项选择题【每小题3分&#xff0c;共30分&#xff09; 1.学前教育学是以&#xff08; &#xff09;和学前教育问题为对象的一个研究领域。 A.幼儿园 B.学前教育现象 C.学前教育目的 D.学前教育规律 2.教育的目的不仅…