使用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代码解决RenderView窗口not found问题
Aug 28 Python
python3大文件解压和基本操作
Dec 15 Python
Python装饰器用法实例总结
Feb 07 Python
Python过滤txt文件内重复内容的方法
Oct 21 Python
python用插值法绘制平滑曲线
Feb 19 Python
详解Python 切片语法
Jun 10 Python
python conda操作方法
Sep 11 Python
使用Python实现画一个中国地图
Nov 23 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
PyTorch 导数应用的使用教程
Aug 31 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
scrapy-splash简单使用详解
Feb 21 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
老照片 - 几十年前的收音机与人
2021/03/02 无线电
杏林同学录(七)
2006/10/09 PHP
Dedecms常用函数解析
2008/02/01 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
php判断表是否存在的方法
2015/06/18 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
PHP的反射机制实例详解
2017/03/29 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
详解nodejs中的process进程
2017/03/19 NodeJs
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
Python字符编码判断方法分析
2016/07/01 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
python 随机森林算法及其优化详解
2019/07/11 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
质量提升方案
2014/06/16 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书