使用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局域网ip扫描示例分享
Apr 03 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
Python3安装Pymongo详细步骤
May 26 Python
详解Python 正则表达式模块
Nov 05 Python
Python数据类型之String字符串实例详解
May 08 Python
python图像和办公文档处理总结
May 28 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
Python守护进程实现过程详解
Feb 10 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python 命令行传参方法总结
May 25 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
JQuery节点元素属性操作方法
2015/06/11 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
跟老齐学Python之用Python计算
2014/09/12 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python3的输入方式及多组输入方法
2018/10/17 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
Python双链表原理与实现方法详解
2020/02/22 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
python中upper是做什么用的
2020/07/20 Python
历史系自荐信范文
2013/12/24 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
2014年保洁工作总结
2014/11/24 职场文书
长城导游词300字
2015/01/30 职场文书
实名检举信范文
2015/03/02 职场文书
Redis可视化客户端小结
2021/06/10 Redis