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


Posted in Python onJanuary 10, 2017

(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库生成二维码图片详解

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

Python 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
Python中http请求方法库汇总
Jan 06 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
Python列表切片操作实例总结
Feb 19 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
关于Keras Dense层整理
May 21 Python
如何在Python对Excel进行读取
Jun 04 Python
利用python实现汉诺塔游戏
Mar 01 Python
利用Python生成文件md5校验值函数的方法
Jan 10 #Python
python中执行shell的两种方法总结
Jan 10 #Python
Python用list或dict字段模式读取文件的方法
Jan 10 #Python
python导入时小括号大作用
Jan 10 #Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 #Python
ubuntu系统下 python链接mysql数据库的方法
Jan 09 #Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 #Python
You might like
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php rsa加密解密使用详解
2015/01/14 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
基于php实现的验证码小程序
2016/12/13 PHP
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
Python常用的json标准库
2019/02/19 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python实现直播推流效果
2019/11/26 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
Python中过滤字符串列表的方法
2020/12/22 Python
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
态度决定一切演讲稿
2014/05/20 职场文书
食品安全演讲稿
2014/09/01 职场文书
党员示范岗材料
2014/12/19 职场文书
实习指导老师意见
2015/06/04 职场文书
公司出差管理制度范本
2015/08/05 职场文书
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技