使用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


相关推荐: 如何在不使用负向后查找的情况下匹配特定条件前的换行符  浅谈Javascript中的Label语句  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  在Oracle关闭情况下如何修改spfile的参数  香港网站服务器数量如何影响SEO优化效果?  如何在万网利用已有域名快速建站?  Android Socket接口实现即时通讯实例代码  英语简历制作免费网站推荐,如何将简历翻译成英文?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在IIS中新建站点并配置端口与物理路径?  韩国服务器如何优化跨境访问实现高效连接?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel怎么判断请求类型_Laravel Request isMethod用法  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  详解Android中Activity的四大启动模式实验简述  高性能网站服务器部署指南:稳定运行与安全配置优化方案  郑州企业网站制作公司,郑州招聘网站有哪些?  Android GridView 滑动条设置一直显示状态(推荐)  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  如何快速搭建高效WAP手机网站吸引移动用户?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  香港服务器如何优化才能显著提升网站加载速度?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  nodejs redis 发布订阅机制封装实现方法及实例代码  详解Android图表 MPAndroidChart折线图  动图在线制作网站有哪些,滑动动图图集怎么做?  Laravel如何创建自定义Artisan命令?(代码示例)  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Python制作简易注册登录系统  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel如何处理文件下载请求?(Response示例)  高端云建站费用究竟需要多少预算?  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  使用C语言编写圣诞表白程序  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  大学网站设计制作软件有哪些,如何将网站制作成自己app?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  北京专业网站制作设计师招聘,北京白云观官方网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Linux系统命令中tree命令详解