中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何生成和讀取二維碼

發布時間:2022-02-22 13:37:08 來源:億速云 閱讀:462 作者:iii 欄目:開發技術

這篇文章主要介紹“Python如何生成和讀取二維碼”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python如何生成和讀取二維碼”文章能幫助大家解決問題。

二維碼是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的、黑白相間的、記錄數據符號信息的圖形。

二維碼被稱為快速響應碼,可能看起來很簡單,但它們能夠存儲大量數據。無論掃描二維碼時包含多少數據,用戶都可以立即訪問信息。

近些年二維碼也是迅速普及,目前已經成為了我們生活中的一部分,它有許多應用場景:

  • 信息獲取(名片、地圖、WIFI密碼、資料)

  • 網站跳轉(跳轉到微博、手機網站、網站)

  • 廣告推送(用戶掃碼,直接瀏覽商家推送的視頻、音頻廣告)

  • 手機電商(用戶掃碼、手機直接購物下單)

  • 防偽溯源(用戶掃碼、即可查看生產地;同時后臺可以獲取最終消費地)

  • 優惠促銷(用戶掃碼,下載電子優惠券,抽獎)

  • 會員管理(用戶手機上獲取電子會員信息、VIP服務)

  • 手機支付(掃描商品二維碼,通過銀行或第三方支付提供的手機端通道完成支付)

  • 賬號登錄(掃描二維碼進行各個網站或軟件的登錄)

Python 處理二維碼也非常簡單,今天我們就來看看怎樣使用一行代碼生成或者讀取二維碼。

生成二維碼

Python 有一個處理二維碼的模塊叫qrcode,我們要生成二維碼,需要安裝這個庫:

生成二維碼就是調用這個模塊的 make 函數:

import qrcode

img = qrcode.make('https://www.zhihu.com/people/wu-huan-bu-san')
img.save('./pic.jpg')

運行這段代碼,就可以得到下面的二維碼:

Python如何生成和讀取二維碼

大家可以掃碼試試看,說不定有驚喜哦!

你肯定會說:騙子!這不是一行代碼啊!

好吧,這兩行可以合并的嘛:

qrcode.make('https://www.zhihu.com/people/wu-huan-bu-san').save('./pic.jpg')

讀取二維碼

讀取二維碼就是將二維碼背后隱藏的信息解析出來,這時候就不是用 qrcode 這個模塊了,而是用 OpenCV 這個模塊。相信公眾號的讀者肯定對這個庫比較熟悉,經常出現在我們的文章中。

先安裝這個庫:

pip install opencv-python

接著,我們以上面生成的二維碼為例,來看看讀取的代碼:

import cv2

d = cv2.QRCodeDetector()
val, _, _ = d.detectAndDecode(cv2.imread("pic.jpg"))
print("the secret is: ", val)

補充

當然Python除了可以生成靜態的二維碼,還能生成動態的

下面是實現動態二維碼的示例代碼,可以參考一下

# -*- coding:utf-8 -*-
# @Time   : 2021-09-30
# @Author : carl_DJ


from MyQR import myqr

#定義二維碼內容
word =  "miss U "

#追加背景
myqr.run(
    word,
    #圖片類型為位.gif
    picture='./sohucs.gif',
    colorized=True,
    version=6
)

當然,Python還可以制作一個自定義二維碼生成工具,可以根據自己的需求生成黑白的或者彩色的二維碼。

from gooey import GooeyParser,Gooey
from MyQR import myqr

@Gooey(encoding='utf-8',program_name='二維碼生成器',program_description='生成動態、彩色、黑白二維碼',language='chinese')
def main():
  parser = GooeyParser(description="生成動態、彩色、黑白二維碼")
  parser.add_argument('文本', widget="TextField")
  parser.add_argument('文件', widget="FileChooser")   # 文件選擇框
  parser.add_argument('樣式選擇', widget='Dropdown',choices={"黑白":"1","彩色":2,"動態":3})
  parser.add_argument('文件保存路徑',widget='DirChooser')
  args = parser.parse_args()
  if args.樣式選擇 == '黑白':
    # 生成二維碼
    myqr.run(words=args.文本,version=9,save_name='qr.png',save_dir=args.文件保存路徑)
    print('成功')
  elif args.樣式選擇 == '彩色':
    if args.文件.split('.')[-1] == 'gif' or args.文件.split('.')[-1] == 'png' or args.文件.split('.')[-1] == 'jpeg':
      myqr.run(words=args.文本, version=9, save_name='qr.png', save_dir=args.文件保存路徑, picture=f'{args.文件}',colorized=True)
      print('成功')
  elif args.樣式選擇 == '動態':
    if args.文件.split('.')[-1] == 'gif':
      myqr.run(words=args.文本, version=9, save_name='qrcode.gif', save_dir=args.文件保存路徑, picture=args.文件,colorized=True)
    else:
      print("圖片格式錯誤,動態二維碼圖片必須為gif格式的")
if  __name__ == '__main__':
  main()

關于“Python如何生成和讀取二維碼”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荥经县| 江西省| 盖州市| 连州市| 宜黄县| 措美县| 南丰县| 民权县| 汕尾市| 错那县| 长武县| 闸北区| 江阴市| 吉安市| 宜阳县| 于都县| 禹州市| 新沂市| 鹤岗市| 佛学| 敦煌市| 屏东市| 玛多县| 南川市| 洪江市| 乌审旗| 阿克| 渝北区| 泗阳县| 丹寨县| 嵊泗县| 彭水| 瑞金市| 长寿区| 深泽县| 嘉禾县| 离岛区| 西乌珠穆沁旗| 台北市| 通山县| 日喀则市|