使用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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
python实现栅栏加解密 支持密钥加密
Mar 20 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
Python实现视频中添加音频工具详解
Dec 06 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解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python魔法方法-自定义序列详解
2016/07/21 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
html5图片上传预览示例分享
2014/04/14 HTML / CSS
英国工具中心:UK Tool Centre
2017/07/10 全球购物
《小动物过冬》教学反思
2014/04/17 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
公务员政审材料
2014/12/23 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS