使用python调用zxing库生成二维码图片详解

发布时间 - 2026-01-10 22:26:09    点击率:

(1)安装Jpype

用Python调用jar包需要安装jpype扩展,在Ubuntu上可以直接使用apt-get安装jpype扩展

$ sudo apt-get install python-jpype

(2) 得到zxing  jar包

使用zxing第三方库生成二维码图片,关于zxing的介绍可以看其github地址:https://github.com/zxing/zxing/。

我们可以下载源码编译安装包,也可以直接在网上下载jar包,我的jar包是直接下载的,如下:

$ wget http://repo1.maven.org/maven2/com/google/zxing/javase/2.2/javase-2.2.jar
$ wget http://repo1.maven.org/maven2/com/google/zxing/core/2.2/core-2.2.jar

(3) 使用python调用jar

下面使用zxing库生成QR_CODE的二维码图片:

#!/usr/bin/python 
#-*- encoding: utf-8 -*- 
 
from jpype import * 
 
# 启动JVM 
startJVM(getDefaultJVMPath(), "-ea", ("-Djava.class.path=%s" % "./javase-2.2.jar:./core-2.2.jar")) 
 
# 加载需要使用到的类型 
MultiFormatWriter = JClass("com.google.zxing.MultiFormatWriter") 
BarcodeFormat = JClass("com.google.zxing.BarcodeFormat") 
BitMatrix = JClass("com.google.zxing.common.BitMatrix") 
File = JClass("java.io.File") 
BufferedImage = JClass("java.awt.image.BufferedImage") 
ImageIO = JClass("javax.imageio.ImageIO") 
ByteArrayOutputStream = JClass("java.io.ByteArrayOutputStream") 
MatrixToImageWriter = JClass("com.google.zxing.client.j2se.MatrixToImageWriter") 
EncodeHintType = JClass("com.google.zxing.EncodeHintType") 
Hashtable = JClass("java.util.Hashtable") 
 
StrToEncode = "This is a testing string" 
# 设置Margin=0 
hints = Hashtable() 
hints.put(EncodeHintType.MARGIN, 0) 
 
matrix = MultiFormatWriter().encode(StrToEncode, BarcodeFormat.QR_CODE, 260, 260, hints) 
image = MatrixToImageWriter.toBufferedImage(matrix) 
ImageIO.write(image, "png", File("test.png")) 
 
# 关闭JVM 
shutdownJVM() 

(4) 运行

运行程序得到的图片如下,可以使用二维码扫描工具得到二维码里面保存的信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# python  # zxing  # 生成二维码 


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


相关推荐: iOS发送验证码倒计时应用  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Bootstrap整体框架之JavaScript插件架构  html如何与html链接_实现多个HTML页面互相链接【互相】  如何彻底卸载建站之星软件?  Laravel如何实现模型的全局作用域?(Global Scope示例)  电商网站制作价格怎么算,网上拍卖流程以及规则?  长沙企业网站制作哪家好,长沙水业集团官方网站?  JavaScript如何实现继承_有哪些常用方法  微信小程序 五星评分(包括半颗星评分)实例代码  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何快速登录WAP自助建站平台?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  如何快速使用云服务器搭建个人网站?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  高防服务器租用如何选择配置与防御等级?  浅谈redis在项目中的应用  Laravel怎么调用外部API_Laravel Http Client客户端使用  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何在云服务器上快速搭建个人网站?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  如何在万网ECS上快速搭建专属网站?  香港服务器租用每月最低只需15元?  如何在阿里云购买域名并搭建网站?  再谈Python中的字符串与字符编码(推荐)  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel如何自定义分页视图?(Pagination示例)  如何打造高效商业网站?建站目的决定转化率  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  制作电商网页,电商供应链怎么做?  详解jQuery中基本的动画方法  Laravel如何使用Blade组件和插槽?(Component代码示例)  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  BootStrap整体框架之基础布局组件  活动邀请函制作网站有哪些,活动邀请函文案?  网页设计与网站制作内容,怎样注册网站?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】