使用python調(diào)用zxing庫(kù)生成二維碼圖片詳解
(1)安裝Jpype
用Python調(diào)用jar包需要安裝jpype擴(kuò)展,在Ubuntu上可以直接使用apt-get安裝jpype擴(kuò)展
$ sudo apt-get install python-jpype
(2) 得到zxing jar包
使用zxing第三方庫(kù)生成二維碼圖片,關(guān)于zxing的介紹可以看其github地址:https://github.com/zxing/zxing/。
我們可以下載源碼編譯安裝包,也可以直接在網(wǎng)上下載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調(diào)用jar
下面使用zxing庫(kù)生成QR_CODE的二維碼圖片:
#!/usr/bin/python
#-*- encoding: utf-8 -*-
from jpype import *
# 啟動(dòng)JVM
startJVM(getDefaultJVMPath(), "-ea", ("-Djava.class.path=%s" % "./javase-2.2.jar:./core-2.2.jar"))
# 加載需要使用到的類(lèi)型
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"
# 設(shè)置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"))
# 關(guān)閉JVM
shutdownJVM()
(4) 運(yùn)行
運(yùn)行程序得到的圖片如下,可以使用二維碼掃描工具得到二維碼里面保存的信息

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于python實(shí)現(xiàn)可視化生成二維碼工具
- 基于Python生成個(gè)性二維碼過(guò)程詳解
- Python使用qrcode二維碼庫(kù)生成二維碼方法詳解
- Python qrcode 生成一個(gè)二維碼的實(shí)例詳解
- 通過(guò)python掃描二維碼/條形碼并打印數(shù)據(jù)
- 一行Python代碼制作動(dòng)態(tài)二維碼的實(shí)現(xiàn)
- 使用python寫(xiě)的opencv實(shí)時(shí)監(jiān)測(cè)和解析二維碼和條形碼
- Python二維碼生成識(shí)別實(shí)例詳解
- 用python生成(動(dòng)態(tài)彩色)二維碼的方法(使用myqr庫(kù)實(shí)現(xiàn))
- 如何利用python檢測(cè)圖片是否包含二維碼
相關(guān)文章
Python如何寫(xiě)入Pandas DataFrame到CSV文件
Pandas是一個(gè)功能強(qiáng)大的Python數(shù)據(jù)分析庫(kù),常用于處理和分析數(shù)據(jù),CSV文件是一種廣泛使用的數(shù)據(jù)交換格式,Pandas通過(guò)to_csv方法支持將DataFrame寫(xiě)入CSV文件,此方法允許用戶(hù)指定分隔符、編碼和選擇性寫(xiě)入特定列等2024-09-09
Python實(shí)現(xiàn)插入排序和選擇排序的方法
這篇文章主要介紹了Python實(shí)現(xiàn)插入排序和選擇排序的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Python實(shí)現(xiàn)動(dòng)態(tài)給類(lèi)和對(duì)象添加屬性和方法操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)動(dòng)態(tài)給類(lèi)和對(duì)象添加屬性和方法操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類(lèi)與對(duì)象屬性、方法的動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02
Python爬取微信讀書(shū)實(shí)現(xiàn)讀書(shū)免費(fèi)自由
主要跟大家介紹一下,我是如何用Python爬取小說(shuō),再導(dǎo)入微信讀書(shū)的。成功實(shí)現(xiàn)在微信讀書(shū)中各種“白票”付費(fèi)小說(shuō),有需要的朋友可以借鑒參考下2021-09-09
python神經(jīng)網(wǎng)絡(luò)slim常用函數(shù)訓(xùn)練保存模型
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)使用slim函數(shù)進(jìn)行模型的訓(xùn)練及保存模型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python中reduce()函數(shù)的用法詳細(xì)解讀
這篇文章主要介紹了Python中reduce()函數(shù)的用法詳細(xì)解讀,reduce函數(shù)是通過(guò)函數(shù)對(duì)迭代器對(duì)象中的元素進(jìn)行遍歷操作,但需要注意的是?reduce?函數(shù)返回的是計(jì)算的結(jié)果,而?map/filter?返回的是作用后的迭代器對(duì)象,需要的朋友可以參考下2023-08-08
python實(shí)現(xiàn)簡(jiǎn)易自習(xí)室座位預(yù)約系統(tǒng)
本文將結(jié)合實(shí)例代碼,介紹python實(shí)現(xiàn)簡(jiǎn)易自習(xí)室座位預(yù)約系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

