ZXing

条形码处理类库
授权协议 Apache
开发语言 Java
所属分类 程序开发、 条形码/二维码
软件类型 开源软件
地区 不详
投 递 者 葛鸿轩
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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());
  }
}
  • 二维码介绍 zxing项目是谷歌推出的用来识别多种格式条形码的开源项目,项目地址为https://github.com/zxing/zxing,zxing有多个人在维护,覆盖主流编程语言,也是目前还在维护的较受欢迎的二维码扫描开源项目之一。 zxing的项目很庞大,主要的核心代码在core文件夹里面,也可以单独下载由这个文件夹打包而成的jar包,具体地址在http://mvnrepository.

 相关资料
  • 本文向大家介绍详解Android 扫描条形码(Zxing插件),包括了详解Android 扫描条形码(Zxing插件)的使用技巧和注意事项,需要的朋友参考一下 使用Android Studio 一、在build.gradle(Module:app)添加代码  下载,调用插件 二、添加权限 三、Activity代码 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希

  • 本文向大家介绍Android中google Zxing实现二维码与条形码扫描,包括了Android中google Zxing实现二维码与条形码扫描的使用技巧和注意事项,需要的朋友参考一下 Android中google Zxing实现二维码与条形码扫描 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,

  • 问题内容: 我想为Android创建一个应用程序,它将能够扫描条形码,获取条形码中包含的信息,然后能够以某种方式使用该信息。 我不知道如何创建条形码扫描仪,所以我去了Google搜索,看来Zxing是在应用程序中实现条形码扫描仪的最常用方法。 一些链接: http://code.google.com/p/zxing/ http://awalkingcity.com/blog/2008/08/25/

  • 在我的应用程序中,我想扫描GS1-128条形码,需要从ZXing条形码扫描仪传递FNC1字符。现在我只收到没有FNC1字符的纯文本。 是否有方法传递DecodeHintType。假设\u GS1通过Intent连接到扫描仪应用程序? 我不想在我的应用程序中包含完整的扫描仪源,而是使用意图。 在扫描仪的源代码中,我可以看到需要设置DecodeHintType才能实现:https://code.goo

  • 如何扫描PDF417格式的条形码?我是否需要传递意向附加信息?(注意:我的设备中已经安装了Zxing条形码应用程序)。请帮帮我。这是我使用Intent应用程序中使用Zxing条形码扫描仪的代码

  • 我已经成功地添加了条码扫描器插件在我的Androidphonegap应用程序这里是js代码,在页面上显示我能够看到条码扫描器屏幕。 这是html5页面代码 但它是如何工作的,当我打开页面时,首先加载html,但在第二个页面中,整个屏幕都被条形码扫描窗口覆盖,我想在一个DIV“scanarea”中修复这个扫描区域。但不知道如何将其固定在特定的div区域,点击按钮即可执行扫描并读取条形码。

  • 使用ML Kit的条码扫描API,您可以读取大多数使用标准条码格式编码的数据。 条形码是将信息从现实世界传递到应用程序的一种便捷方式。特别是,使用QR码等二维格式时,您可以编码结构化数据,如联系人信息或WiFi网络凭证。由于ML Kit可以自动识别和解析这些数据,因此当用户扫描条形码时,您的应用可以进行智能响应。 iOS Android 关键功能 阅读大多数标准格式 线性格式:Codabar,Co

  • 这是我在这里的第一个问题,所以我将尽可能与你相关。我对使用云视觉处理一些文档感兴趣,因为我需要OCR功能。我还碰巧需要读取条形码,我目前已经使用ZXing实现了这一点。 我在OCR中偶然发现了条形码块类型(https://cloud.google.com/vision/docs/reference/rest/v1/images/annotate#BlockType)但我没有成功地制作出这样一个块,