得益于智能手机,QR码正变得越来越主流,并且它们变得越来越有用。从候车亭、产品包装、家装店、汽车到很多网站,都在网页上集成了二维码,方便人们快速找到。随着智能手机用户数量的增加,二维码的使用呈指数增长。让我们看一下QR码的简要概述以及如何在Java中生成它们。QR码介绍QR码(QuickResponse快速响应码)是矩阵条码(或二维码)的一种,最初是为汽车行业设计的。由于具有快速可读性和大存储容量,QR码开始在汽车行业之外流行起来。该图案由白色背景上有序的黑色方块组成。被编码的数据可以是四种标准数据(数字、字母数字、字节/二进制、汉字)之一,但也可以扩展以获得更多数据。丰田子公司DensoWave于1994年发明了二维码,用于跟踪生产线上的车辆。从此,二维码成为二维条码的唯一直译。QR码旨在支持内容的高速解码。HelloWorldZebraCrossing(ZXing),用Java实现QR码,是一个很棒的开源库,可用于在几乎所有平台(Android、JavaSE、iPhone、RIM、Symbian)上生成和解析QR码。但是,如果只是想生成简单的二维码,就不太好用了。QRGen是在ZXing之上开发的,ZXing是一个使在Java中生成二维码变得轻而易举的库。需要依赖ZXing,所以生成花样时需要ZXing和QRGen两个jar包。你不会在ZXing的下载页面上找到jar文件。你必须通过源码自己编译,我已经帮你生成了,链接在这里。zxing-core-1.7.jar(346KB)zxing-javase-1.7.jar(21KB)QRGen的jar包可以在官网下载。将它们导入类路径并执行以下Java代码:12345678910111213141516171819202122232425262728293031packagenet.viralpatel.qrcodeimportjava.io.ByteArrayOutputStream;导入java.io.文件;导入java.io.FileNotFoundException;导入java.io.FileOutputStream;导入java.io.IOException;导入net.glxn.qrgen.QRCode;导入net.glxn。qrgen.image.ImageType;publicclassMain{publicstaticvoidmain(String[]args){ByteArrayOutputStreamout=QRCode.from("HelloWorld").to(ImageType.PNG).stream();try{FileOutputStreamfout=newFileOutputStream(newFile("C:QR_Code.JPG"));fout.write(out.toByteArray());fout.flush();fout.close();}catch(FileNotFoundExceptione){//DoLogging}catch(IOExceptione){//DoLogging}}}这些代码非常直观。我们使用QRCode类生成二维码流,通过字节流写入文件C:\QR_Code.jpg。下载源代码QR_Code_Java.zip(339KB)如果你打开这个JPEG文件并用你的iPhone或Android二维码工具扫描它,你会看到一个很酷的“HelloWorld”:)除了使用QRGenAPI生成数据流,我们还可以使用以下API来创建二维码:12345678910111213141516//使用默认值从文本中获取二维码文件Filefile=QRCode.from("HelloWorld").文件();//使用默认值从文本中获取二维码流ByteArrayOutputStreamstream=QRCode.from("HelloWorld").stream();//覆盖图片类型为JPGQRCode.from("HelloWorld").to(ImageType.JPG).file();QRCode.from("HelloWorld").to(ImageType.JPG).stream();//重写图像大小为250x250QRCode.from("HelloWorld").withSize(250,250).file();QRCode.from("HelloWorld").withSize(250,250).stream();//覆盖大小和图像类型QRCode.from("HelloWorld").to(ImageType.GIF).withSize(250,250).file();QRCode.from("HelloWorld").to(ImageType.GIF).withSize(250,250).stream();在Java中为网站链接(URL)生成二维码。二维码最常见的应用是为网站中的特定网页或下载页面带来流量。因此,QR码通常对URL或网站地址进行编码,用户可以使用手机摄像头扫描并在浏览器中打开。URL可以直接编码成二维码。在上面的HelloWorld示例中,只需将字符串“HelloWorld”替换为要编码的URL。下面是代码片段:1ByteArrayOutputStreamout=QRCode.from("http://viralpatel.net").to(ImageType.PNG).stream();Servlet中的二维码大多数时候,您需要动态生成一些二维码。我们已经看到用Java生成二维码是多么容易。现在,让我们看看如何将生成二维码集成到JavaServlet中。下面是一个简单的HTTPServlet,它使用QRGen和ZXing库来创建QR码。二维码的内容可以由用户提供。index.jsp文件包含一个带有输入字段和提交按钮的简单HTML表单。用户可以输入他希望编码并提交的文本。index.jsp12345 输入文字生成二维码
