ZXing - 条形码处理类库

Apache
Java
跨平台
2009-06-24
红薯

ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。

示例代码:

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;

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

/**
* 二维码工具类
*/
public class QRCodeUtil {
  private static final int width = 300;// 默认二维码宽度
  private static final int height = 300;// 默认二维码高度
  private static final String format = "png";// 默认二维码文件格式
  private static final Map<EncodeHintType, Object> hints = new HashMap();// 二维码参数

  static {
      hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符编码
      hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 容错等级 L、M、Q、H 其中 L 为最低, H 为最高
      hints.put(EncodeHintType.MARGIN, 2);// 二维码与图片边距
  }
  /**
   * 返回一个 BufferedImage 对象
   * @param content 二维码内容
   * @param width   宽
   * @param height  高
   */
  public static BufferedImage toBufferedImage(String content, int width, int height) throws WriterException, IOException {
      BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
      return MatrixToImageWriter.toBufferedImage(bitMatrix);
  }
  /**
   * 将二维码图片输出到一个流中
   * @param content 二维码内容
   * @param stream  输出流
   * @param width   宽
   * @param height  高
   */
  public static void writeToStream(String content, OutputStream stream, int width, int height) throws WriterException, IOException {
      BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
      MatrixToImageWriter.writeToStream(bitMatrix, format, stream);
  }
  /**
   * 生成二维码图片文件
   * @param content 二维码内容
   * @param path    文件保存路径
   * @param width   宽
   * @param height  高
   */
  public static void createQRCode(String content, String path, int width, int height) throws WriterException, IOException {
      BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
      //toPath() 方法由 jdk1.7 及以上提供
      MatrixToImageWriter.writeToPath(bitMatrix, format, new File(path).toPath());
  }
}
加载中

评论(5)

恒温
恒温
API都么有。。。网上的demo都缺了一部分。。有木有大神补上
Cralyon
Cralyon
二维码sdk,用zbar好还是zxing好呢?#ZXing#zbar商用好像要授权誒
minjasmine
minjasmine
zxing在android中竖屏后,在CaptureActivity finish时黑屏,跟踪代码是在onPause中调用了 handler.quitSynchronously();在quitSynchronously()中调用cameraManager.stopPreview();中导致的,有人遇到过这种情况吗? ZXing
S
Solemnysw
哪里下载啊 ZXing
Rhys_Lee
Rhys_Lee
zxing开发文档谁有啊 ZXing

条形码处理类库 ZXing 3.3.3 发布,支持 Java 9

ZXing 3.3.3 已发布,ZXing 是一个开源 Java 类库,可用于解析多种格式的 1D/2D 条形码。目标是能够对 QR 编码、Data Matrix、UPC 的 1D 条形码进行解码。 该版本更新内容主要包含: 一些修复...

06/25 15:50

没有更多内容

加载失败,请刷新页面

没有更多内容

2
回答
zxing如何更改输出的条形码的颜色?

最近遇到一个项目,需要输出的条形码是红色的,请问zxing是否可以设置条形码的颜色?如果不可以,java是否有其他办法可以实现?

11/03 10:38
8
回答
barcode4j和zxing哪个好用,各有什么优缺点

最近想搞个二维码的功能,网上找些资料看到有两个开源插件,barcode4j和zxing,现在想问问哪个好用,各有什么优缺点,有用过的大神给解释下

2016/01/31 15:04
4
回答
zxing二维码识别率提高求助!谢谢!

识别率偏低,微信能识别,但zxing无法识别 纯java后台方式

04/03 09:09
5
回答
有人知道微信用的是什么扫码库吗?

有人知道微信用的是什么扫码库吗?zxing?zbar?怎么对焦那么快,识别那么叼?

2013/06/24 16:49
2
回答
jdk1.5的环境,使用zxing生成二维码

jdk1.5的环境,使用zxing生成二维码,报错java.lang.UnsupportedClassVersionError: Bad version ...

2016/05/03 13:22
1
回答
zxing扫码不成功的问题

zxing源码demo运行在安卓4.2+500W摄像头的开发板上,结果发现扫描的时候并没有出现那几个定位的小黄点,导致无法扫描,log如下,那个箭头指向的...

2016/01/12 14:33
2
回答
求zxing详解,我要知道这个东西解析的详细说明

我要知道如何调用zxing解析二维码的方法(方法名),如何获得解析结果。网上找不到详细说明。求解!

2016/05/13 17:15
1
回答
Zxing是怎么区分码制的?

Zxing是怎么区分码制的?比如在识读的时候怎么区分条码是PDF417还是QR?

2016/11/17 08:49
2
回答
java zxing 在条形码下方添加数字

我现在只能搞出这种图片 但是我想要的是下面这种 谁知道用zxing怎么给这玩意儿下面添加数字,别叫我换barcode4j 只喜欢zxing

2016/10/09 16:52
2
回答
java zxing能否生成二维码和一维码在同一张图片上
魔力猫 的回答 2016/10/09 15:53
最佳答案
你完全可以生成两张图片,然后拼在一起嘛。

没有更多内容

加载失败,请刷新页面

ZXing读写二维码,桌面和手机的不同用法

虽然ZXing是用Java实现的Barcode开源库,但是并不代表桌面上实现的Barcode应用在手机上也可以直接使用。因为Android的Java接口有很多是不同的。这里分享下Java Barcode生成和读取的不同用法。...

2015/08/18 14:34
579
0
Android 二维码

ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 ZXing主页 ht...

2015/06/11 16:59
39
0
基于zxing-lib三步实现Android二维码应用

只需要基于开源项目zxing-lib,便可轻松创建独立二维码App,也可将二维码功能集成进App内。本文也是zxing-lib的使用文档。同时抛砖引玉,欢迎大家一起共建zxing-lib。...

2014/08/23 19:10
2.2K
1
zxing scan from large photo

在使用zxing开源库的时候,发现比较大的图片无法扫描成功,报如下异常: com.google.zxing.NotFoundException 通过scale down Bitmap可以解决上述问题,720是一个Magic number,可以根据自己...

2015/03/13 13:32
209
0
项目ITP(一) 二维码

 上几周碌碌无为,不行啊不行啊。博客园,不知道你几时改版。老家了,我不会忘记你呢。呵呵,我也会在os,csdn更新的。每天一搏,不管有用没用。

2014/04/27 09:17
51
0
利用zxing读写PDF417码制的二维码

项目中需要用到二维码,二维码的码制是PDF417,在做了一番研究之后发现zxing是个不错的开源工具(代码托管在google上面)。为什么选择zxing,由于其他一些工具比如barcode4j(开源,支持读,...

2013/12/17 11:32
2.7K
1
利用zxing读写PDF417码制的二维码

项目中需要用到二维码,二维码的码制是PDF417,在做了一番研究之后发现zxing是个不错的开源工具(代码托管在google上面)。为什么选择zxing,由于其他一些工具比如barcode4j(开源,支持读,...

2017/10/18 11:12
2
0
android项目中使用zxing扫码(一)

1、下载zxing源码,以及jar包。https://github.com/zxing/zxing 2、把jar包放到项目的libs文件夹下,并添加到gradle编译文件里。 3、把zxing的client所有文件添加到项目中 修复所有错误提示。...

2015/07/08 08:34
92
0
Java实现生成和解码二维码具体操作步骤

QR码的使用越来越多,可以在很多地方见着,比如火车票、推广产品上等,以下将介绍如何用Java生成QR码以及解码QR码。 1、涉及开源项目: ZXing :一个开源Java类库用于解析多种格式的1D/2D条形...

2013/08/07 09:15
368
1
下载GitHub项目中的单个文件夹

使用SVN单独下载GitHub项目中的文件夹

2015/02/27 15:10
47
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部