1. 高密度编码,信息容量大
可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。
2. 编码范围广
该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据。
3. 容错能力强,具有纠错功能
这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达50%仍可恢复信息。
4. 译码可靠性高
它比普通条码译码错误率百万分之二要低得多,误码率不超过千万分之一。
5. 可引入加密措施
保密性、防伪性好。
6. 成本低,易制作,持久耐用
正因为以上这些特点,二维码现在越来越流行,应用也是越来越广(详细了解请见百度百科,介绍不是本篇重点),所以掌握如何开发二维码是非常不错的知识储备,因此本篇文章将为大家讲解如何生成、解析二维码。
本文说的是通过zxing实现二维码的生成与解析,看着很简单,直接上代码
import java.io.file;import java.io.ioexception;import java.nio.file.path;import java.util.hashmap;import com.google.zxing.barcodeformat;import com.google.zxing.encodehinttype;import com.google.zxing.multiformatwriter;import com.google.zxing.writerexception;import com.google.zxing.client.j2se.matrixtoimagewriter;import com.google.zxing.common.bitmatrix;import com.google.zxing.qrcode.decoder.errorcorrectionlevel;public class testzxing {public static void main(string[] args) {int width=300;int height=300; string format=png; string contents=www.baidu.com; hashmap map=new hashmap(); map.put(encodehinttype.character_set, utf-8); map.put(encodehinttype.error_correction,errorcorrectionlevel.m); map.put(encodehinttype.margin, 0);try { bitmatrix bm = new multiformatwriter().encode(contents, barcodeformat.qr_code, width, height); path file=new file(d:/img.png).topath(); matrixtoimagewriter.writetopath(bm, format, file); } catch (writerexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } } }
通过上面的代码则会生成一个内容链接为www.baidu.com的二维码
对这个二维码的解析的代码如下
import java.awt.image.bufferedimage;import java.io.file;import java.io.ioexception;import java.util.hashmap;import javax.imageio.imageio;import com.google.zxing.binarybitmap;import com.google.zxing.encodehinttype;import com.google.zxing.multiformatreader;import com.google.zxing.notfoundexception;import com.google.zxing.result;import com.google.zxing.client.j2se.bufferedimageluminancesource;import com.google.zxing.common.hybridbinarizer;public class testread {public static void main(string[] args) {try { multiformatreader reader=new multiformatreader();//需要详细了解multiformatreader的小伙伴可以点我一下官方去看文档file f=new file(d:/img.png); bufferedimage image=imageio.read(f); binarybitmap bb=new binarybitmap(new hybridbinarizer(new bufferedimageluminancesource(image))); hashmap map =new hashmap(); map.put(encodehinttype.character_set, utf-8); result result = reader.decode(bb,map); system.out.println(解析结果:+result.tostring()); system.out.println(二维码格式类型:+result.getbarcodeformat()); system.out.println(二维码文本内容:+result.gettext()); } catch (notfoundexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } } }
执行的结果如下
解析结果:www.baidu.com 二维码格式类型:qr_code 二维码文本内容:www.baidu.com
具体的jar包小伙伴可以自行下载
链接: 密码:kcjx
以上就是用java生成二维码代码分享的详细内容。
