使用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+Django在windows下的开发环境配置图解
Nov 11 Python
Python中的id()函数指的什么
Oct 17 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
python 获取url中的参数列表实例
Dec 18 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 Python
python文件写入write()的操作
May 14 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Python collections模块使用方法详解
Aug 28 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 Python
Python使用scapy模块发包收包
May 07 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
基于mysql的bbs设计(三)
2006/10/09 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
jQuery 解析xml文件
2009/08/09 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
jQuery代码优化方法总结
2018/01/29 jQuery
vue中锚点的三种方法
2018/07/06 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
异地年检委托书范本
2014/09/24 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
2015年中个人总结范文
2015/03/10 职场文书
大国崛起日本观后感
2015/06/02 职场文书
话题作文之呼唤
2019/12/18 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers