<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
二維條碼是用某種特定的幾何圖形按一定規律在平面(二維方向上)分佈的、黑白相間的、記錄資料符號資訊的圖形。
二維條碼被稱為快速響應碼,可能看起來很簡單,但它們能夠儲存大量資料。無論掃描二維條碼時包含多少資料,使用者都可以立即存取資訊。
近些年二維條碼也是迅速普及,目前已經成為了我們生活中的一部分,它有許多應用場景:
Python 處理二維條碼也非常簡單,今天我們就來看看怎樣使用一行程式碼生成或者讀取二維條碼。
Python 有一個處理二維條碼的模組叫qrcode
,我們要生成二維條碼,需要安裝這個庫:
生成二維條碼就是呼叫這個模組的 make
函數:
import qrcode img = qrcode.make('https://www.zhihu.com/people/wu-huan-bu-san') img.save('./pic.jpg')
執行這段程式碼,就可以得到下面的二維條碼:
大家可以掃碼試試看,說不定有驚喜哦!
你肯定會說:騙子!這不是一行程式碼啊!
好吧,這兩行可以合併的嘛:
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)
執行這段程式碼,列印資訊是:
the secret is: https://www.zhihu.com/people/wu-huan-bu-san
這正是我們生成二維條碼的內容。
這裡怎麼轉換成一行程式碼就不需要我贅述了吧!
當然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()
二維條碼的操作程式碼夠簡單吧!相信看過這篇文章的你肯定能記住,下次遇到二維條碼操作的時候只需5秒就可以出結果!當然,還有其他一些操作,大家可以閱讀模組的介面去嘗試。
到此這篇關於Python一行程式碼實現生成和讀取二維條碼的文章就介紹到這了,更多相關Python 二維條碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45