详解使用zxing库生成QR-Code二维码

发布时间 - 2026-01-11 00:57:22    点击率:

详解使用zxing库生成QR-Code二维码

最近因为一些工作需要,需要根据实际的信息生成QR-Code二维码图片文件,自然想到zxing库了,具体的代码很简单,做个备忘。

首先是引入zxing库,我是使用maven构建项目的,添加依赖:

<dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>javase</artifactId>
  <version>3.3.0</version>
</dependency>

然后是测试样列代码:

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

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;

/**
 * 使用zxing库生成QRCode二维码样例程序
 *
 * @author 阿信sxq
 *
 */
public class QrcodeDemo {

  public static void main(String[] args) {
    new QrcodeDemo().genQrcode("https://my.oschina.net/songxinqiang");
  }

  public void genQrcode(String message) {
    //输出目标文件
    File file = new File("E:\\qrcode.png");
    if (!file.exists()) {
      try {
        file.mkdirs();
        file.createNewFile();
      } catch (IOException e) {}
    }
    //设置参数,输出文件
    Map<EncodeHintType, String> hints = new HashMap<>();
    hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    try {
      BitMatrix bitMatrix = new MultiFormatWriter().encode(message, BarcodeFormat.QR_CODE,
          300, 300, hints);// 生成矩阵
      MatrixToImageWriter.writeToPath(bitMatrix, "png", file.toPath());// 输出图像
    } catch (Exception e) {}
  }

}


这里是为了做演示,内容直接生成的我空间的地址,并且目标文件也是现在家里使用的windows 的文件位置,在具体实际的使用中需要具体修改。

生成的图片是:

(调整过大小)

在这里需要说明的是,二维码中的点的大小会随二维码文字内容的多少自动变化,所以在文字内容很多的时候需要把图片的尺寸调大,否则点太小了,一般的手机扫描起来很吃力

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# zxing库生成QR-Code二维码  # zxing库生成QR-Code二维码实例  # C#利用ZXing.Net生成条形码和二维码  # Android中利用zxing实现自己的二维码扫描识别详解  # Android实现基于ZXing快速集成二维码扫描功能  # Android Zxing二维码扫描图片拉伸的解决方法  # Android Zxing二维码扫描图片拉伸问题的解决方法  # Thinkphp使用Zxing扩展库解析二维码内容图文讲解  # 的是  # 我是  # 在这里  # 希望能  # 很简单  # 做个  # 谢谢大家  # 阿信  # 是为了  # 家里  # 样例  # 在文字  # 太小了  # IOException  # HashMap  # util  # File  # import  # java  # io 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建高效简练网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Laravel如何生成URL和重定向?(路由助手函数)  Laravel如何使用Blade组件和插槽?(Component代码示例)  JavaScript如何操作视频_媒体API怎么控制播放  如何在阿里云通过域名搭建网站?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Android自定义listview布局实现上拉加载下拉刷新功能  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel如何优化应用性能?(缓存和优化命令)  Laravel如何使用Eloquent进行子查询  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  香港服务器选型指南:免备案配置与高效建站方案解析  如何确认建站备案号应放置的具体位置?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  php结合redis实现高并发下的抢购、秒杀功能的实例  JavaScript如何实现错误处理_try...catch如何捕获异常?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何用景安虚拟主机手机版绑定域名建站?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel如何实现用户密码重置功能?(完整流程代码)  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  晋江文学城电脑版官网 晋江文学城网页版直接进入  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  如何在景安服务器上快速搭建个人网站?  如何用美橙互联一键搭建多站合一网站?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  制作公司内部网站有哪些,内网如何建网站?  QQ浏览器网页版登录入口 个人中心在线进入  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)