`
dyllove98
  • 浏览: 1405534 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39060
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80064
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133167
社区版块
存档分类
最新评论

java开发_生成/解析自己的QRCode二维码

 
阅读更多

http://www.ostools.net/qr看到了一个生成二维码的工具,于是就产生了一个想法:

为什么自己不做一个二维码的生成和解析工具呢?花了一个多钟的时间,嘿嘿,就做出来啦...

先来看看效果图吧:

CODE_QR:                                            

 CODE_128:        

PDF_417:

二维码的意思是:

下面是操作步骤:

一:下载zxing的压缩包:

可以到这里下载:http://code.google.com/p/zxing/downloads/list

ZXing-2.1.zip:http://code.google.com/p/zxing/downloads/detail?name=ZXing-2.1.zip&can=2&q=

得到:

zxing-2.1\core\core.jar

zxing-2.1\javase\javase.jar

二:把他添加进入你的项目的里面:

/QRCodes/src/com/b510/qrcode/QRCode.java

 

  1 /**
  2  * 
  3  */
  4 package com.b510.qrcode;
  5 
  6 import java.awt.image.BufferedImage;
  7 import java.io.File;
  8 import java.io.IOException;
  9 import java.util.Hashtable;
 10 import java.util.Map;
 11 
 12 import javax.imageio.ImageIO;
 13 
 14 import com.google.zxing.BarcodeFormat;
 15 import com.google.zxing.BinaryBitmap;
 16 import com.google.zxing.DecodeHintType;
 17 import com.google.zxing.EncodeHintType;
 18 import com.google.zxing.LuminanceSource;
 19 import com.google.zxing.MultiFormatReader;
 20 import com.google.zxing.MultiFormatWriter;
 21 import com.google.zxing.ReaderException;
 22 import com.google.zxing.Result;
 23 import com.google.zxing.Writer;
 24 import com.google.zxing.WriterException;
 25 import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
 26 import com.google.zxing.common.BitMatrix;
 27 import com.google.zxing.common.HybridBinarizer;
 28 import com.google.zxing.oned.CodaBarWriter;
 29 import com.google.zxing.oned.Code128Writer;
 30 import com.google.zxing.oned.Code39Writer;
 31 import com.google.zxing.oned.EAN13Writer;
 32 import com.google.zxing.oned.EAN8Writer;
 33 import com.google.zxing.oned.ITFWriter;
 34 import com.google.zxing.oned.UPCAWriter;
 35 import com.google.zxing.pdf417.encoder.PDF417Writer;
 36 import com.google.zxing.qrcode.QRCodeWriter;
 37 
 38 /**
 39  * 利用zxing开源工具生成二维码QRCode
 40  * 
 41  * @date 2012-10-26
 42  * @author xhw
 43  * 
 44  */
 45 public class QRCode {
 46     private static final int BLACK = 0xff000000;
 47     private static final int WHITE = 0xFFFFFFFF;
 48 
 49     /**
 50      * @param args
 51      */
 52     public static void main(String[] args) {
 53         QRCode test = new QRCode();
 54         File file = new File("C://test.png");
 55         /**
 56          * 在com.google.zxing.MultiFormatWriter类中,定义了一些我们不知道的码,二维码只是其中的一种<br>
 57          * public BitMatrix encode(String contents,
 58                           BarcodeFormat format,
 59                           int width, int height,
 60                           Map<EncodeHintType,?> hints) throws WriterException {
 61             Writer writer;
 62             switch (format) {
 63               case EAN_8:
 64                 writer = new EAN8Writer();
 65                 break;
 66               case EAN_13:
 67                 writer = new EAN13Writer();
 68                 break;
 69               case UPC_A:
 70                 writer = new UPCAWriter();
 71                 break;
 72               case QR_CODE:  //这里是二维码
 73                 writer = new QRCodeWriter();
 74                 break;
 75               case CODE_39:
 76                 writer = new Code39Writer();
 77                 break;
 78               case CODE_128:  //这个可以生成
 79                 writer = new Code128Writer();
 80                 break;
 81               case ITF:
 82                 writer = new ITFWriter();
 83                 break;
 84               case PDF_417:  //这个可以生成
 85                 writer = new PDF417Writer();
 86                 break;
 87               case CODABAR:
 88                 writer = new CodaBarWriter();
 89                 break;
 90               default:
 91                 throw new IllegalArgumentException("No encoder available for format " + format);
 92             }
 93             return writer.encode(contents, format, width, height, hints);
 94           }
 95 
 96          */
 97         test.encode("helloworld,I'm Hongten.welcome to my zone:http://www.cnblogs.com/hongten", file, BarcodeFormat.QR_CODE, 200, 200, null);
 98         test.decode(file);
 99     }
100 
101     /**
102      * 生成QRCode二维码<br> 
103      * 在编码时需要将com.google.zxing.qrcode.encoder.Encoder.java中的<br>
104      *  static final String DEFAULT_BYTE_MODE_ENCODING = "ISO8859-1";<br>
105      *  修改为UTF-8,否则中文编译后解析不了<br>
106      */
107     public void encode(String contents, File file, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) {
108         try {
109             BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, format, width, height);
110             writeToFile(bitMatrix, "png", file);
111         } catch (Exception e) {
112             e.printStackTrace();
113         }
114     }
115 
116     /**
117      * 生成二维码图片<br>
118      * 
119      * @param matrix
120      * @param format
121      *            图片格式
122      * @param file
123      *            生成二维码图片位置
124      * @throws IOException
125      */
126     public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
127         BufferedImage image = toBufferedImage(matrix);
128         ImageIO.write(image, format, file);
129     }
130 
131     /**
132      * 生成二维码内容<br>
133      * 
134      * @param matrix
135      * @return
136      */
137     public static BufferedImage toBufferedImage(BitMatrix matrix) {
138         int width = matrix.getWidth();
139         int height = matrix.getHeight();
140         BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
141         for (int x = 0; x < width; x++) {
142             for (int y = 0; y < height; y++) {
143                 image.setRGB(x, y, matrix.get(x, y) == true ? BLACK : WHITE);
144             }
145         }
146         return image;
147     }
148 
149     /**
150      * 解析QRCode二维码
151      */
152     @SuppressWarnings("unchecked")
153     public void decode(File file) {
154         try {
155             BufferedImage image;
156             try {
157                 image = ImageIO.read(file);
158                 if (image == null) {
159                     System.out.println("Could not decode image");
160                 }
161                 LuminanceSource source = new BufferedImageLuminanceSource(image);
162                 BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
163                 Result result;
164                 @SuppressWarnings("rawtypes")
165                 Hashtable hints = new Hashtable();
166                 //解码设置编码方式为:utf-8
167                 hints.put(DecodeHintType.CHARACTER_SET, "utf-8");
168                 result = new MultiFormatReader().decode(bitmap, hints);
169                 String resultStr = result.getText();
170                 System.out.println("解析后内容:" + resultStr);
171             } catch (IOException ioe) {
172                 System.out.println(ioe.toString());
173             } catch (ReaderException re) {
174                 System.out.println(re.toString());
175             }
176         } catch (Exception ex) {
177             System.out.println(ex.toString());
178         }
179     }
180 }

是不是很简单.....

源码下载:http://files.cnblogs.com/hongten/QRCodes.rar

分享到:
评论

相关推荐

    Java生成和解析二维码1.2(QRCode)

    本代码为二维码生成和解析的Java实现代码,包括三个类和一个QRCode的jar包(一个jar包用于生成二维码,一个jar包用于读取二维码尤其用于读取的jar包不好下载,所以就一起放进来了,方便大家学习使用),一个生成...

    qrcode.jar,Qrcode_swetake.jar解析生成二维码jar包以及解析生成代码

    本主题主要关注两个jar包:`qrcode.jar` 和 `Qrcode_swetake.jar`,它们是用于生成和解析二维码的Java库。 `qrcode.jar` 是一个专门用于生成二维码的Java实现。这个库提供了API接口,开发者可以通过调用这些接口,...

    Java QRCode二维码生成与识别 开源

    总的来说,这个Java QRCode二维码生成与识别开源项目提供了一整套解决方案,从生成包含汉字的二维码到读取和解析二维码图像。开发者可以利用这些工具进行各种应用开发,如移动支付、信息分享、门票验证等。通过深入...

    QrCode 二维码生成与解析

    本主题将深入探讨“QrCode 二维码生成与解析”,包括如何使用JavaScript生成二维码以及如何利用Java工程解析二维码图片文件。 首先,我们来看二维码生成的过程。在JavaScript环境下,可以借助开源库如`qrcode-...

    QRCode二维码生成源代码

    QRCode二维码生成源代码是一种用于在各种应用中创建和显示二维码的技术。二维码,全称Quick Response Code,快速响应码,是二维条形码的一种形式,能够存储大量的信息,如文字、网址、联系信息等,并且可以被手机...

    Qrcode二维码java生成项目(带logo)

    本项目"Qrcode二维码java生成项目(带logo)"旨在帮助开发者快速创建带有自定义logo的二维码。下面将详细介绍这个项目及其相关知识点。 首先,我们需要了解的是二维码的基本原理。二维码是一种二维条形码,能够存储...

    java QRcode二维码生成包

    Java QRcode二维码生成包是一种用于在Java环境中生成和解析二维码的工具,主要遵循QRCODE和ACTEC等国际标准。这个代码包为开发者提供了一种高效且便捷的方式,以生成适用于移动设备读取的二维码图像,进而应用于各种...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    总之,使用ZXing开发的二维码/条形码/带logo彩色二维码例子是一个实用的项目,它扩展了ZXing的基本功能,增加了视觉吸引力和品牌识别度。对于开发者来说,掌握这样的技术可以提升应用程序的用户体验,特别是在市场...

    java-根据网站链接url生成二维码qrcode

    在IT行业中,生成二维码(Qrcode)是一种常见的数据编码方式,尤其在移动互联网时代,它被广泛用于快速分享网址、信息或作为应用的快捷入口。Java作为一种强大的编程语言,提供了多种库来帮助开发者生成二维码。本篇...

    java qrcode产生二维码和解析二维码

    在Java编程环境中,生成和解析二维码(QR Code)是一项常见的任务,特别是在移动应用、网站链接分享、电子票务等领域...总之,理解并熟练运用`qrcode.jar`可以帮助你有效地在Java项目中实现二维码的生成和解析功能。

    JAVA 生成二维码并设置失效机制

    1.通过QRCode.jar包生成二维码,可设置二维码图片格式,二维码图片存放路径,二维码尺寸,二维码颜色 2.二维码扫描内容分为两种,1种为链接式,如:www.zdkc.com,通过链接展示访问的内容,1种为json数据展示,通过...

    Java 二维码生成、解析

    Java 二维码生成与解析是Java开发中常见的功能需求,尤其在移动互联网时代,二维码被广泛应用于数据交换、链接跳转、支付凭证等场景。本文将详细介绍如何使用Google的ZXing库来实现Java环境下的二维码生成与解析。 ...

    二维码必须jar包,Qrcode_swetake.jar,qrcode.jar

    本资源包含两个用于Java平台的二维码生成和解析的必备JAR包:Qrcode_swetake.jar和qrcode.jar。这两个库为开发者提供了便捷的接口来处理二维码相关的功能。 Qrcode_swetake.jar是基于Swetake的二维码生成库,由日本...

    java二维码生成及解析(内含QRCode所需jar包)

    二维码生成及解析内涵两个java类原码与QRCode所需的jar包。 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码图片》 《主要是生成二维码...

    QRcode生成、解析二维码项目与所有jar

    这个项目包含了二维码的生成与解析功能,并且提供了所有必要的JAR文件,使得开发者可以方便地在自己的应用中集成这些功能。 1. **QRcode生成**: 生成二维码的过程涉及到编码算法,它将文本信息转换为特定的二进制...

    QRcode二维码生成和解析

    通常,这会涉及到选择一个库或API,例如Java中的`qrcode.jar`和`Qrcode_swetake.jar`,这两个jar包可能提供了生成二维码的类和方法。开发者可以通过输入待编码的数据,调用这些库的方法,设置相应的参数(如二维码的...

    QRCode生成二维码和解析二维码java

    通过引入jar包,开发者无需关心具体的编码和解码细节,只需调用预定义的接口即可实现二维码的生成和解析功能,大大提高了开发效率。在实际应用中,可以根据项目需求对这些接口进行扩展或调整,以满足特定场景的需要...

    QRCode二维码生成与识别.rar

    此压缩包"QRCode二维码生成与识别.rar"包含了一个使用IDEA2017开发的项目,该项目经过测试,能够生成普通的二维码以及含有图片的特殊二维码,并且具备二维码识别功能。 首先,我们来了解一下二维码的基本概念。...

    java生成二维码_java将二维码转换成base64

    Java作为一款跨平台的编程语言,提供了丰富的库来处理二维码生成与解析。本篇将详细介绍如何在Java中生成二维码以及如何将生成的二维码转换为Base64编码。 首先,我们来看如何在Java中生成二维码。Java中常用的...

    生成、解析带logo的二维码(java)

    在Java中,我们可以利用开源库如ZXing(Zebra Crossing)来处理二维码的生成与解析。 ZXing库提供了多种类和方法来处理一维条码和二维条码,包括二维码。要生成带logo的二维码,我们需要使用`...

Global site tag (gtag.js) - Google Analytics