在本文中,我们将研究如何使用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

如何在Java中使用Zxing和JFreeSVG创建QR Code SVG?相关推荐

  1. zxing qr区域判断_如何在Java中使用Zxing和JFreeSVG创建QR Code SVG?

    zxing qr区域判断 在本文中,我们将研究如何使用Zxing QR代码生成库和JFreeSVG库在Java中创建QR Code SVG图像. QR码生成 下面的代码使用Zxing库创建一个表示QR ...

  2. 如何在Java中比较日期? [重复]

    本文翻译自:How to compare dates in Java? [duplicate] This question already has answers here : 这个问题已经在这里有了 ...

  3. 如何在Java中创建一个新的List

    本文翻译自:How to make a new List in Java We create a Set as: 我们创建一个Set为: Set myset = new HashSet() How d ...

  4. 如何在java中调用js方法

    [java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...

  5. java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密

    如何在JAVA中使用MD5加密对密码进行加密 发布时间:2020-11-25 17:12:40 来源:亿速云 阅读:118 作者:Leah 本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行 ...

  6. java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素

    如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...

  7. java 中覆 写tostring_如何在Java中正确覆盖toString()?

    如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...

  8. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  9. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

最新文章

  1. Java中jsonObject与String等互转问题
  2. python学习框架图-Python学习—框架篇之初识Django
  3. javascript中的for in循环和for循环的使用
  4. 自动化构建之bower
  5. 本周四直播丨Oracle中为什么没有double write?那支持原子写吗?
  6. PHP学习总结(2)——PHP入门篇之PHP代码标识
  7. Android语音识别(本地+第三方)
  8. Android的Fragment中onActivityResult不被调用的解决方案
  9. nginx 域名跳转
  10. Windows、Linux下安装Redis图文教程
  11. php 读取脸型,基于OpenCV的PHP图像人脸检测识别技术
  12. bootice工具修复linux,系统进不去怎么办?教你利用bootice工具引导修复系统
  13. 转《腾讯大讲堂11 拍拍ce工作经验分享》
  14. matlab显示串联矩阵的维度不一致,串联的矩阵的维度不一致。
  15. ubuntu18.04 网络配置 ipv4ipv6DNS路由
  16. 【大数据】为什么要学习大数据
  17. AndroidManifest.xml详解(上)
  18. VBA的 随机数 rnd 和 randomize 如何配合使用? 伪随机数带来的问题,根据需要产生不同的随机数!
  19. code文件服务器异常,传奇服务器启动异常!Code1 Table does not exist
  20. Docker shipyard 笔记

热门文章

  1. ssl1072-砝码称重【dp练习】
  2. ssl2295-暗黑破坏神【dp练习】
  3. 2021“MINIEYE杯”中国大学生算法设计超级联赛(10)Pty loves string(Border+二维数点)
  4. Codeforces Global Round 10
  5. 【并查集】【最小生成树】【贪心】给水(jzoj 2015)
  6. [XSY4197] Snow(树形DP)
  7. MySQL coalesce()函数
  8. js深度复制一个对象使用JSON.stringify是最好的办法吗
  9. binarySearch与IndexOf的那些事儿~
  10. java中,剩下的这两个内部类不太好理解!