日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python一键生成二维码/条形码并保存成图片

發布時間:2024/1/18 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python一键生成二维码/条形码并保存成图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QRCode是生成二維碼的庫,采用里德-所羅門碼來進行編碼,里德-所羅門碼是一種帶有容錯機制的編碼方法,采用這種機制掃描的時候并不需要讀取所有的比特位,因此也使得簡單的在QRcode中少量的更改信息,比如加入小型的圖片等。

image是圖片處理庫,依賴于django、olefile、pillow

安裝qrcode

pip install qrcode

查看命令行

命令行中使用命令qr https://www.baidu.com

看得不是很清晰,于是我們把它保存成圖片

安裝image庫,pip install image,安裝成功

再次執行 qr https://www.baidu.com > baidu.png

生成圖片baidu.png,打開微信掃一掃,發現跳轉到百度網頁

腳本實現

?

# coding:utf8 import qrcode from PIL import Image url = "https://www.github.com" address = "D://github.png" img = qrcode.make(url) img.show()

?

高級用法

?

# coding:utf8 import qrcode from PIL import Image url = "https://www.github.com" address = "D://github.png" qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=8,border=8,)qr.add_data(url) qr.make(fit=True) img = qr.make_image() img.show()

生成二維碼的步驟:?
1. 創建QRCode對象?
2. add_data()添加數據?
3. make_image()創建二維碼(返回img類型的圖片對象)?
4. 自動打開圖片,img.show()

注:實際上make函數也是通過實例化一個QRCode對象來生成二維碼的。調用make的時候也可以傳入初始化參數

關于QRCode類參數介紹

QRCode類參數有四個參數:version、err_correction、box_size、border
version:參數是(1-40)的整數,該參數用來控制二維碼的尺寸(最小,version=1,該version的尺寸是21*21)。把version設置為None且使用fit參數會自動生成二維碼。
err_correction:參數控制生成二維的誤差。qrcode包中有四個可用的常量:
ERROR_CORRECT_L:該常量表示誤差率低于7%(包含7%)
ERROR_CORRECT_M(默認值):該常量表示誤差率低于15%(包含15%)
ERROR_CORRECT_Q:該常量表示誤差率低于25%(包含25%)
ERROR_CORRECT_H:該常量表示誤差率低于30%(包含30%)
box_size:參數用來控制二維碼的每個單元(box)格有多少像素點
border: 參數用控制每條邊有多少個單元格(默認值是4,這是規格的最小值)

二、嘗試使用pyBarcode庫實現條形碼的生成

https://pypi.org/project/pyBarcode/0.7/?安裝?pip install pyBarcode==0.7

如果沒有權限只能下載安裝包了,解壓后,執行 python setup.py install

from barcode.writer import ImageWriter from barcode.ean import EuropeanArticleNumber13 from barcode import get_barcode_class from random import randintdef randomNums(n):"生成隨機n位的條形碼數"barCode_num = ''for i in range(n):barCode_num += str(randint(0,9))def generateBarcode():"generate bar code by ean13 style which dfault format is png"# method1barcode_nums = randomNums(10)barcode_ean13 = EuropeanArticleNumber13(barcode_nums, writer=ImageWriter())barcode_ean13.save("./barCode/image")# method2 equalEAN = get_barcode_class("ean13")ean = EAN(barcode_nums, writer=ImageWriter())ean.save("./barCode/image1")

生成圖片如下

缺點是:沒有開啟和終止符(隨機生成的字符串不知道是否符合國際標準)

EAN-13通用商品條形碼一般由前綴部分、制造廠商代碼、商品代碼和校驗碼組成。商品條形碼中的前綴碼是用來標識國家或地區的代碼,賦碼權在國際物品編碼協會,如00-09代表美國、加拿大。45-49代表日本。690-695代表中國大陸,471代表中國臺灣地區,489代表香港特區。制造廠商代碼的賦權在各個國家或地區的物品編碼組織,中國由國家物品編碼中心賦予制造廠商代碼。商品代碼是用來標識商品的代碼,賦碼權由產品生產企業自己行使。商品條形碼最后用1位校驗碼來校驗商品條形碼中左起第l-12數字代碼的正確性。

?

總結

以上是生活随笔為你收集整理的python一键生成二维码/条形码并保存成图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。