使用python調(diào)用zxing庫生成二維碼圖片詳解
(1)安裝Jpype
用Python調(diào)用jar包需要安裝jpype擴展,在Ubuntu上可以直接使用apt-get安裝jpype擴展
$ sudo apt-get install python-jpype
(2) 得到zxing jar包
使用zxing第三方庫生成二維碼圖片,關(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庫生成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" # 設(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) 運行
運行程序得到的圖片如下,可以使用二維碼掃描工具得到二維碼里面保存的信息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python Tkinter實現(xiàn)剪刀石頭布小游戲功能
這篇文章主要介紹了使用Python Tkinter實現(xiàn)剪刀石頭布小游戲功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10turtle的基礎(chǔ)使用之python?turtle遞歸繪圖
這篇文章主要介紹了turtle的基礎(chǔ)使用之python?turtle遞歸繪圖,turtle是一種比較簡單的第三方庫,下面借助遞歸繪圖詳細(xì)描述該內(nèi)容,具有一的的知識性參考價值,需要的朋友可以參考一下2022-02-02numpy數(shù)組的重塑和轉(zhuǎn)置實現(xiàn)
本文主要介紹了numpy數(shù)組的重塑和轉(zhuǎn)置實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python趣味挑戰(zhàn)之turtle庫繪畫飄落的銀杏樹
銀杏還是和恐龍同時代的植物,被稱為活化石,適應(yīng)能力強,生長期漫長,壽命可達(dá)千年.因此,銀杏是長壽的代表和象征,接下來用Python的turtle庫來繪畫銀杏樹唯美的一幕,需要的朋友可以參考下2021-05-05python讀取與處理netcdf數(shù)據(jù)方式
今天小編就為大家分享一篇python讀取與處理netcdf數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02使用Python爬取Json數(shù)據(jù)的示例代碼
這篇文章主要介紹了使用Python爬取Json數(shù)據(jù)的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12