从Java程序生成QR码图像

如果您精通技术和小工具,则必须了解QR码。 这些天,到处都可以找到它-在博客,网站,甚至在某些公共场所。 这在移动应用程序中非常流行,在移动应用程序中,您可以使用QR Code扫描仪应用程序扫描QR Code,它将显示文本或将您重定向到网页(如果是URL)。 我最近遇到了这个问题,发现它非常有趣。 如果您想了解QR Code,可以在Wikipedia QR Code页面上找到很多有用的信息。当我在许多网站中找到此类图像时,我开始寻找如何使用Java Code生成图像的信息。 我研究了一些在市场上可以作为开源使用的API,发现zxing是最简单和最好的用法。

这是您可以用来通过zxing API创建QR Code图片的程序。

package com.adly.generator;import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class GenerateQRCode {/*** @param args* @throws WriterException* @throws IOException*/public static void main(String[] args) throws WriterException, IOException {String qrCodeText = 'http://www.journaldev.com';String filePath = 'D:\\Pankaj\\JD.png';int size = 125;String fileType = 'png';File qrFile = new File(filePath);createQRImage(qrFile, qrCodeText, size, fileType);System.out.println('DONE');}private static void createQRImage(File qrFile, String qrCodeText, int size,String fileType) throws WriterException, IOException {// Create the ByteMatrix for the QR-Code that encodes the given StringHashtable hintMap = new Hashtable();hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);QRCodeWriter qrCodeWriter = new QRCodeWriter();BitMatrix byteMatrix = qrCodeWriter.encode(qrCodeText,BarcodeFormat.QR_CODE, size, size, hintMap);// Make the BufferedImage that are to hold the QRCodeint matrixWidth = byteMatrix.getWidth();BufferedImage image = new BufferedImage(matrixWidth, matrixWidth,BufferedImage.TYPE_INT_RGB);image.createGraphics();Graphics2D graphics = (Graphics2D) image.getGraphics();graphics.setColor(Color.WHITE);graphics.fillRect(0, 0, matrixWidth, matrixWidth);// Paint and save the image using the ByteMatrixgraphics.setColor(Color.BLACK);for (int i = 0; i < matrixWidth; i++) {for (int j = 0; j < matrixWidth; j++) {if (byteMatrix.get(i, j)) {graphics.fillRect(i, j, 1, 1);}}}ImageIO.write(image, fileType, qrFile);}}

这是此程序创建的QR Code图像文件。 您可以使用移动QR码扫描仪应用程序对其进行测试。 它应该指向JournalDev主页URL。

如果您没有移动应用程序进行测试,请不要担心。 您也可以通过命令行使用zxing API对其进行测试。

我在Windows操作系统上,这是对其进行测试的命令。 如果您使用的是Unix / Linux / Mac OS,请相应地进行更改。

D:\Pankaj\zxing>java -cp javase\javase.jar;core\core.jar com.google.zxing.client.j2se.CommandLineRunner D:\Pankaj\JD.png
file:/D:/Pankaj/JD.png (format: QR_CODE, type: URI):
Raw result:http://www.journaldev.comParsed result:http://www.journaldev.comFound 4 result points.Point 0: (35.5,89.5)Point 1: (35.5,35.5)Point 2: (89.5,35.5)Point 3: (80.5,80.5)


动态QR码生成提示

如果要动态生成QR码,则可以使用Google Charts Tools进行。
对于上述情况,URL为https://chart.googleapis.com/chartchs=125×125&cht=qr&chl=http://www.journaldev.com

祝您编程愉快,别忘了分享!

参考:在Developer Recipes博客上,从我们的JCG合作伙伴 Pankaj Kumar的Java程序生成QR Code图像 。


翻译自: https://www.javacodegeeks.com/2012/10/generate-qr-code-image-from-java-program.html

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

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

相关文章

LintCode-最长公共子串

给出两个字符串&#xff0c;找到最长公共子串。并返回其长度。 您在真实的面试中是否遇到过这个题&#xff1f; Yes例子 给出A“ABCD”&#xff0c;B“CBCE”&#xff0c;返回 2 注意 子串的字符应该连续的出如今原字符串中&#xff0c;这与子序列有所不同。标签 Expand 相关…

课时67.标签选择器(掌握)

通过上节课的学习我们明白了如何通过十六进制来表示颜色 例如&#xff1a;红色的几种表示方法 我们发现在学习CSS当中的一些属性的时候&#xff0c;它都有一些套路 只要知道属性的名称&#xff0c;属性有什么作用&#xff0c;它有哪些取值&#xff0c;这个属性有什么注意点 …

计算几何问题 java_【转载】ACM计算几何题目推荐

2107 Quoit Design 典型最近点对问题POJ 3714 Raid 变种最近点对问题B&#xff0c;最小包围圆最小包围圆的算法是一种增量算法&#xff0c;期望是O(n)。ZOJ 1450 Minimal CircleHDU 3007 Buried memoryC&#xff0c;旋转卡壳POJ 3608 Bridge Acr…

jdbc连接oracle的几种格式

1. SID的方式。已经不推荐使用这种方式了。 jdbc:oracle:thin:[<user>/<password>]<host>[:<port>]:<SID> 2.Service Name的方式。 jdbc:oracle:thin:[<user>/<password>]//<host>[:<port>]/<service> 3.TNSNames…

Java 7:使用NIO.2进行文件过滤-第1部分

NIO.2是自Java 7起JDK中包含的用于I / O操作的新API。使用此新API&#xff0c;您可以执行与 java.io以及许多出色的功能&#xff0c;例如&#xff1a;访问文件元数据和监视目录更改等。 显然&#xff0c;由于向后兼容&#xff0c;java.io包不会消失&#xff0c;但是我们鼓励为…

第十三周活动进度表

学习进度表&#xff1a; 第三周内容时间周一&#xff08;4&#xff1a;10-6&#xff1a;00&#xff09;上课&#xff0c;周二晚上&#xff08;8&#xff1a;00-9&#xff1a;00&#xff09;&#xff0c;周四晚上&#xff08;8&#xff1a;00-8&#xff1a;30&#xff09;&#…

课时66.颜色控制属性下(理解)

今天来讲解十六进制控制属性的方法&#xff0c;其实用十六进制表示的方式本质就是rgb&#xff0c;只不过它们的格式不一样而已&#xff0c;十六进制中是通过每两位表示一种颜色的方式来给颜色赋值。 如 #FF0000 FF----r 00----g 00----b 修改前两位相当于修改rgb中的第一…

idea复制java_IntelliJ IDEA的剪切、复制和粘贴

IntelliJ IDEA的剪切、复制和粘贴本节内容概览&#xff1a;• 剪切、复制和粘贴的基本使用• 复制选定的文本片段• 将路径复制到文件• 将引用复制到一行或一个符号• 剪切选定的文本片段• 从剪贴板粘贴最后一个条目• 将最后一个条目从剪贴板粘贴为纯文本• 从剪贴板粘贴特定…

python方差的计算公式为什么减一_样本标准差分母为何是n-1

欢迎各位学习从0到1Python数据科学之旅&#xff0c;腾讯课堂和网易云课堂入口分别如下&#xff1a;(腾讯课堂新营业&#xff0c;报名可领取20元优惠券)微信公众号&#xff1a;pythonEducation模型和统计项目QQ&#xff1a;231469242大家好&#xff0c;今天给大家介绍标准差。标…

pxe+kickstart 自动化部署linux操作系统

kickstart 是什么&#xff1f; 批量部署Linux服务器操作系统 运行模式&#xff1a; C/S client/server 服务器上要部署&#xff1a; DHCP tftp&#xff08;非交互式文件共享&#xff09; 安装系统的三个步骤&#xff1a; 1、加载vmlinuz、 initrd (微型启动根目录&#xff0c;它…

课时57.HTML被废弃的标签(掌握)

1.为什么HTML中有一部分标签会被废弃&#xff1f; 因为当前HTML中的标签只有一个作用&#xff0c;就是用来添加语义&#xff0c;而早期的HTML标签中有一部分标签是没有语义的 有一部分标签是用来修改样式的 所以这部分标签就被淘汰了 <br><hr><font> <…

Java编码约定被认为是有害的

在Oracle网站上有Java编程语言指南的正式代码约定 。 您可能希望这份超过20页的文档将是有关Java语言的最佳实践&#xff0c;提示和技巧的最完整&#xff0c;最全面和最权威的来源。 但是一旦你开始阅读它&#xff0c;失望和愤怒就会增加。 我想指出本指南中最明显的错误&#…

flash php socket通信_php socket通信机制实例说明

php socket通信机制实例说明与代码----什么是socket 所谓socket一般也称作"套接字"&#xff0c;用于描述ip地址和端口&#xff0c;是一个通讯链的句柄。使用程序一般经过"套接字"向network发出请求也许应对network请求。说白了就是一种通讯机制。它类似于银…

python的ogr模块_python GDAL/OGR模块安装注意事项

软件准备&#xff1a;首先&#xff0c;确保电脑里已安装python2.7(2.x版本的比较好用&#xff0c;因为还使用ArcGIS)&#xff0c;然后从http://www.gisinternals.com网站上下载这两个文件GDAL-2.1.3.win32-py2.7.msi和gdal-201-1500-core.msi。软件安装&#xff1a;首先安装gda…

课时55.详情和概要标签(理解)

1.什么是详情和概要标签&#xff1f; 作用&#xff1a;利用summary标签来描述概要信息&#xff0c;利用details标签来描述详情信息 默认情况下是折叠展示&#xff0c;想看见详情必须点击 格式&#xff1a; <details> <summary>概要信息</summary> 详情信…

Spring Security可以做的十件事

一 您可以在Spring XML配置文件中指定您选择的授权提供者。 您可以通过配置Spring的http://www.springframework.org/schema/security/spring-security-3.1.xsd模式中定义的authentication-manager来实现。 简化的authentication-manager元素定义看起来像这样&#xff1a; &l…

python编写自定义函数判断n1-n2范围内的素数_【每日道代码题001】- PYTHON基础复习...

问题001-1&#xff1a;请对输入三个整数a,b,c,判断能否以它们为三个边长构成三角形。若能&#xff0c;输出YES和面积&#xff0c;否则输出NOa float(input())b float(input())c float(input())if a > 0 and b > 0 and c > 0: #判断边长是否为正if (a b > c) an…

php绘制一个三角形,如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...

我们在平时的前端开发的时候&#xff0c;有时候是需要一些小图形来丰富一下页面效果&#xff0c;比如&#xff1a;下拉列表的倒三角图形。那么这样的一个三角形是如何制作出来的&#xff0c;本章给大家介绍如何利用css或html画出一个三角形&#xff1f;两种不同的制作三角形方法…

课时53.video标签(掌握)

这节课来学习一下html5中新增的标签&#xff0c;我们先来看一下&#xff0c;html5中新增了哪些标签&#xff1f; 打开W3school的网页&#xff0c;点击参考手册中的HTML/HTML5标签&#xff0c;有一个按字母顺序排列的标签&#xff0c;但凡标签后面带有5标记的&#xff0c;都是h…

Date函数基础知识整理

Date类型&#xff1a;1.Date.parse()接收一个表示日期的字符串参数&#xff0c;然后再根据这个字符串返回响应的日期的毫秒数&#xff1b;如&#xff1a;创建一个日期&#xff1a; 1 <script> 2 // var someDatenew Date(May 25,2004); 3 // console.log(someDate);//Tue…