使用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标准库urllib2的一些使用细节总结
Mar 16 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
Python3.x中自定义比较函数
Apr 24 Python
python使用pil生成图片验证码的方法
May 08 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
Python Series从0开始索引的方法
Nov 06 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
python 实现线程之间的通信示例
Feb 14 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
django创建超级用户时指定添加其它字段方式
May 14 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 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验证身份证号码正确性的函数
2016/07/20 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
javascript中length属性的探索
2011/07/31 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
js实现密码强度检验
2017/01/15 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python实现一次创建多级目录的方法
2015/05/15 Python
python实现按任意键继续执行程序
2016/12/30 Python
python使用udp实现聊天器功能
2018/12/10 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
给孩子的新年寄语
2014/04/08 职场文书
2014年部门工作总结
2014/11/12 职场文书
加入学生会自荐书
2015/03/05 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
诚信考试主题班会
2015/08/17 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
Redis的字符串是如何实现的
2021/10/24 Redis