摘要:聲明使用方法參數解釋控制二維碼的大小,取值范圍從到。取最小值時,二維碼大小為。控制二維碼糾錯級別。默認值,大約或者更少的錯誤會被更正。控制二維碼四周留白包含的格子數,默認為。清空數據返回二維碼數組。
https://github.com/lincolnloo...
聲明import qrcode使用 QRCode 方法
qrcode.QRCode( version=1, error_correction=qrcode.ERROR_CORRECT_L, box_size=10, border=4, image_factory=None, mask_pattern=None )
version:控制二維碼的大小,取值范圍從1到40。取最小值1時,二維碼大小為21*21。取值為 None (默認)或者使用fit=true參數(默認)時,二維碼會自動調整大小。
error_correction:控制二維碼糾錯級別。
ERROR_CORRECT_L:大約7%或者更少的錯誤會被更正。
ERROR_CORRECT_M:默認值,大約15%或者更少的錯誤會被更正。
ERROR_CORRECT_Q:大約25%或者更少的錯誤會被更正。
ERROR_CORRECT_H:大約30%或者更少的錯誤會被更正。
box_size:控制二維碼中每個格子的像素數,默認為 10。
border:控制二維碼四周留白包含的格子數,默認為4。
image_factory:選擇生成圖片的形式,默認為 PIL 圖像。
mask_pattern:選擇生成圖片的的掩模。
常用方法:
add_data(str,optimize=20):添加要轉換的文字到data參數;如果使用了optimize優化參數,數據將被拆分為多個塊來進行優化,以找到一個長度至少為這個值的足夠簡潔的方式來生成二維碼。設置為“0”以避免優化。
make(fit=True):當fit參數為真或者沒有給出version參數時,將會調用best_fit方法來找到適合數據的最小尺寸。如果沒有設置mask_pattern,將會調用best_mask_pattern方法來找到找到最有效的掩模圖案。最后將這些數據傳遞給makeImpl方法來生成二維碼。與qrcode本體的make方法不一樣的是,這個方法沒有任何返回值。
make_image(fill_color=None, back_color=None,image_factory=None):創建二維碼的圖像并返回,默認為 PIL 圖像。**
如果要讓二維碼有顏色,可以在這里設置。**
clear:清空數據
get_matrix:返回二維碼數組。
print_ascii(out=None, tty=False, invert=False):這個方法就比較有趣了,可以用字符畫的形式來輸出二維碼,但是掃的時候一般都掃不出來。其中的invert參數是決定是否反轉顏色的參數,默認為假,如果為真的話會這樣:
其他方法:
best_fit(start=self.version):找到適合數據所需的最小尺寸。
best_mask_pattern():找到最有效的掩模圖案。
makeImpl(test, mask_pattern):生成二維碼的直接函數
map_data:(內部函數,無需了解)
print_tty(out=None):用TTY顏色輸出二維碼,如果沒有給出out參數,會使用sys.stdout。
setup_position_adjust_pattern:(內部函數,無需了解)
setup_position_probe_pattern:(內部函數,無需了解)
setup_timing_pattern:(內部函數,無需了解)
setup_type_info:(內部函數,無需了解)
setup_type_number:(內部函數,無需了解)
屬性(這些大家基本都不用管):
border:
box_size:
data_cache:
data_list:
error_correction:
image_factory:
mask_pattern:
modules:
modules_count:
version:
生成 SVG 圖像qrcode可以生成三種不同的svg圖像,一種是用路徑表示的svg,一種是用矩形集合表示的完整svg文件,還有一種是用矩形集合表示的svg片段。第一種用路徑表示的svg其實就是矢量圖,可以在圖像放大的時候可以保持圖片質量,而另外兩種可能會在格子之間出現空隙。
這三種分別對應了svg.py中的SvgPathImage、SvgImage和SvgFragmentImage類。在調用qrcode.make函數或者實例化QRCode時當作image_factory參數的值傳入就可以了。
import qrcode.image.svg if method == "basic": # Simple factory, just a set of rects. factory = qrcode.image.svg.SvgImage elif method == "fragment": # Fragment factory (also just a set of rects) factory = qrcode.image.svg.SvgFragmentImage else: # Combined path factory, fixes white space that may occur when zooming factory = qrcode.image.svg.SvgPathImage img = qrcode.make("Some data here", image_factory=factory)生成 PNG 圖像
執行命令安裝pymaging相關模塊:
pip install git+git://github.com/ojii/pymaging.git#egg=pymaging pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png
然后給image_factor參數傳入qrcode.image.pure.PymagingImage就可以生成PNG圖片了。
import qrcode from qrcode.image.pure import PymagingImage img = qrcode.make("Some data here", image_factory=PymagingImage)
這是作者推薦的方式,但是我個人認為,完全沒有必要這么麻煩,直接用默認的 PIL 就可以獲取 PNG 圖片了,例子看下文。
make 方法make方法實際上就是在內部調用了QRCode(要轉換的文本).make_image(),最后(默認)返回了一個PIL圖像對象。
# 顯示圖片 qrcode.make("hello world!").show() # 保存 PNG 圖片 qrcode.make("hello world!").save("hello.png")run_example 方法
生成一個作者項目網站地址的二維碼并顯示出來。
翻譯自作者的Github地址中的 README 和具體代碼注釋。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41987.html
在教學Python解決二維碼圖片的過程當中,大家看到基本上都是用python形成霸氣二維碼圖片、用Python制運作的圖二維碼圖片什么的文章內容。但是關于應用Python大批量掃一掃二維碼的實例教程,實屬罕見。文中就給大家歸納了Python掃一掃二維碼的兩種方式,有興趣的話可以學習下 序言 近期在尋找材料時,發覺了一則10年前新聞報道:二維碼圖片將成為線上與線下重要通道。從目前的移動互聯來...
摘要:二維碼簡稱,學名為快速響應矩陣碼,是二維條碼的一種,由日本的公司于年發明。參數表示生成二維碼的尺寸大小,取值范圍是至,最小尺寸會生成的二維碼,每增加,生成的二維碼就會添加尺寸,例如是,則生成的二維碼。 二維碼簡稱 QR Code(Quick Response Code),學名為快速響應矩陣碼,是二維條碼的一種,由日本的 Denso Wave 公司于 1994 年發明。現隨著智能手機的普...
摘要:借著這個需求體會了下微信開發的兩種不同類型非端口的兩種開發,以及的一些正確姿勢。關于用戶微信登錄的事情我們通過已經解決了參考我的上一篇博客微信公眾號開發小記接入三方登錄,所以可以直接用的裝飾器完成這種事情。 描述 假設的我們的服務號有這么一些功能,比如底部有按鈕,點擊會有一些復雜的功能,這時候可能就需要一個用戶系統,有用戶系統就經常想要做什么分享邀請新用戶之類的,這時候就又有幾種方式,...
摘要:本篇文章記錄下用擴展包生成二維碼。安裝以及配置使用擴展包來生成二維碼,將其配置到中共需要三步。使用安裝在中注冊服務提供者,如下繼續在中添加門面,如下經過以上三個步驟,在中就可以使用來生成二維碼了。 導語 之前介紹過 composer 的作用,可以很方便的管理包,同時 laravel 的開發者眾多,因此有很多擴展包可以使用。本篇文章記錄下用擴展包生成二維碼。代碼可查看 GitHub。 c...
摘要:關于本教程有任何建議或者疑問,都歡迎郵件與我聯系,或者在上提出教程流程簡介教程將會從如何分析微信協議開始,第一部分將教你如何從零開始獲取并模擬擴展個人微信號所需要的協議。 現在的日常生活已經離不開微信,難免會生出微信有沒有什么API可以使用的想法。 那樣就可以拿自己微信做個消息聚合、開個投票什么的,可以顯然沒有這種東西。 不過還好,有網頁版微信不就等于有了API么,這個項目就是出于這個...
閱讀 2616·2023-04-25 22:09
閱讀 2846·2021-10-14 09:47
閱讀 1950·2021-10-11 11:10
閱讀 2694·2021-10-09 09:44
閱讀 3391·2021-09-22 14:57
閱讀 2505·2019-08-30 15:56
閱讀 1625·2019-08-30 15:55
閱讀 786·2019-08-30 14:13