91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在Python中使用qrcode庫生成二維碼

發布時間:2021-03-20 17:08:07 來源:億速云 閱讀:233 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在Python中使用qrcode庫生成二維碼,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

安裝qrcode庫

pip install qrcode

聲明

import qrcode

使用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:選擇生成圖片的的掩模。

qrcode方法屬性解釋:

常用方法:

  • 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 圖像。如果要讓二維碼有顏色,可以在這里設置fill_color, back_color


  • clear:清空數據

  • get_matrix:返回二維碼數組。

  • print_ascii(out=None, tty=False, invert=False):這個方法就比較有趣了,可以用字符畫的形式來輸出二維碼,但是掃的時候一般都掃不出來。

如何在Python中使用qrcode庫生成二維碼

其中的invert參數是決定是否反轉顏色的參數,默認為假,如果為真的話會這樣:

如何在Python中使用qrcode庫生成二維碼

其他方法:

  • 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')

關于如何在Python中使用qrcode庫生成二維碼就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

察隅县| 滨州市| 疏勒县| 浏阳市| 报价| 贵定县| 营口市| 北海市| 申扎县| 合山市| 文成县| 化德县| 青河县| 桦川县| 英德市| 河北省| 东方市| 通化市| 保康县| 娄底市| 浦县| 阿城市| 漳州市| 兴安县| 团风县| 璧山县| 资阳市| 图木舒克市| 乌鲁木齐县| 长汀县| 晋中市| 彭阳县| 邻水| 呼玛县| 察哈| 白朗县| 卢氏县| 涿州市| 威海市| 枣强县| 九江县|