怎麼樣使用python調用zxing庫生成二維碼圖片?

ADVERTISEMENT

怎麼樣使用python調用zxing庫生成二維碼圖片?

(1)安裝Jpype

用Python調用jar包需要安裝jpype擴展,在Ubuntu上可以直接使用apt-get安裝jpype擴展


 $ sudo apt-get install python-jpype
ADVERTISEMENT

(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) 運行

運行程序得到的圖片如下,可以使用二維碼掃描工具得到二維碼里面保存的信息

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持路飯。

ADVERTISEMENT

本文地址:
ADVERTISEMENT
ADVERTISEMENT