使用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 调用VC++的动态链接库(DLL)
Sep 06 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
Python 使用多属性来进行排序
Sep 01 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
Python range与enumerate函数区别解析
Feb 28 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
python爬虫用mongodb的理由
Jul 28 Python
Python数据库封装实现代码示例解析
Sep 05 Python
用python读取xlsx文件
Dec 17 Python
Python词云的正确实现方法实例
May 08 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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
php教程之phpize使用方法
2014/02/12 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
使用Python对Access读写操作
2017/03/30 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python hash每次调用结果不同的原因
2019/11/21 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
单位在职证明范本
2014/01/09 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
机动车交通事故协议书
2015/01/29 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server