使用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 相关文章推荐
用python 制作图片转pdf工具
Jan 30 Python
用Python实现一个简单的线程池
Apr 07 Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
python针对excel的操作技巧
Mar 13 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
OpenCV全景图像拼接的实现示例
Jun 05 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制作图型计数器的例子
2006/10/09 PHP
php强制下载类型的实现代码
2011/04/21 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
PHP中16个高危函数整理
2019/09/19 PHP
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
windows下python连接oracle数据库
2017/06/07 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python format 格式化输出方法
2018/07/16 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
python进阶之自定义可迭代的类
2019/08/20 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python将数组n等分的实例
2019/12/02 Python
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
亲属关系公证书
2014/04/08 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
真诚的求职信
2014/07/04 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
交通事故调解协议书
2015/05/20 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
常用的Python代码调试工具总结
2021/06/23 Python
图文详解nginx日志切割的实现
2022/01/18 Servers