使用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杀死一个线程的方法
Sep 06 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
详解python中的文件与目录操作
Jul 11 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
python 实现A*算法的示例代码
Aug 13 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
python输入多行字符串的方法总结
Jul 02 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
Python获取对象属性的几种方式小结
Mar 12 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 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+DBM的同学录程序(5)
2006/10/09 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
浅谈PHP的反射API
2017/02/26 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
ES6的新特性概览
2016/03/10 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
python中的itertools的使用详解
2020/01/13 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
三八节标语
2014/06/27 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
自主招生学校推荐信
2014/09/26 职场文书
专项资金申请报告
2015/05/15 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书