免費學習推薦:python影片教學
python應用學習(一)-qrcode產生二維碼
- 前言
- 一、準備
- 二、程式碼寫
- 1.引入庫
- 2.配置初始化參數
- 3.得到二維碼物件
- 4.在二維碼中放置logo
- 5.配置對應資訊並呼叫函數
- 6.完整程式碼
- 最後
本文利用python產生一個自己想要的二維碼,其中程式碼做了註解並於相關知識的解答
一、準備
1、python環境
pip install套件名稱 安裝
pip install qrcode
#pip install pillow二、程式碼寫
1.引入庫
import qrcodefrom PIL import Imageimport osimport sys2.配置初始化參數
qr = qrcode.QRCode( version=2, #25*25 二维码的版本号,每一个版本号对应一个尺寸,这里尺寸不是图片的大小而的是二维码长宽被分成的份数 error_correction=qrcode.constants.ERROR_CORRECT_H, #纠错容量,指二维码不完整时可以正常识别出原信息的概率(ERROR_CORRECT_H的纠错率最高) box_size=8, #生成图片的像素 border=1, #二维码边框宽度 )
3.得到二維碼物件
#
qr.add_data(string) **#string为想要打开的链接** qr.make(fit=True) #用make()方法生成图片 img = qr.make_image(fill_color = 'black',back_color = 'white') #得到二维码对象,并可以通过修改fill_color、back_color参数来调整小格子颜色和背景色 img = img.convert("RGBA") #将图片转换为RGBA格式4.在二維碼中放置logo
相關免費學習推薦:#########python教學#########(影片)#########if logo and os.path.exists(logo): try: icon = Image.open(logo) img_w, img_h = img.size #img_w、img_h是二维码的尺寸 except Exception as e: print(e) sys.exit(1) factor = 4 size_w = int(img_w / factor) size_h = int(img_h / factor) icon_w, icon_h = icon.size #icon_W、icon_h是logo原始的尺寸 if icon_w > size_w: #size_W、size_h是二维码尺寸的1/factor icon_w = size_w if icon_h > size_h: icon_h = size_h icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS) #antialias是平滑处理 # 保证二维码大小不超过二维码大小的1/factor w = int((img_w - icon_w) / 2) #计算logo在二维码中的相对位置 h = int((img_h - icon_h) / 2) icon = icon.convert("RGBA") img.paste(icon, (w, h), icon) #根据相对位置w、h将logo放到二维码图片上,所以说实际是logo并不是二维码的一部分,会遮挡二维码的一部分,不能太大,否则无法识别5.配置對應資訊並呼叫函數if __name__ == "__main__": info = "https://blog.csdn.net/weixin_45386875/article/details/113766276" #二维码的链接 pic_path = "qr.png" #生成的图片保存文件 logo_path = "logo.png" #logo的文件名 gen_qrcode(info, pic_path,logo_path ) #调用函数6.完整程式碼##import qrcodefrom PIL import Imageimport osimport sysdef gen_qrcode(string, path, logo=""): """ 生成中间带logo的二维码 需要安装qrcode, PIL库 @参数 string: 二维码字符串 @参数 path: 生成的二维码保存路径 @参数 logo: logo文件路径 @return: None """ qr = qrcode.QRCode( version=2, #25*25 二维码的版本号,每一个版本号对应一个尺寸,这里尺寸不是图片的大小而的是二维码长宽被分成的份数 error_correction=qrcode.constants.ERROR_CORRECT_H, #纠错容量,指二维码不完整时可以正常识别出原信息的概率(ERROR_CORRECT_H的纠错率最高) box_size=8, #生成图片的像素 border=1, #二维码边框宽度 ) qr.add_data(string) #string为想要打开的链接 qr.make(fit=True) #用make()方法生成图片 img = qr.make_image(fill_color = 'black',back_color = 'white') #得到二维码对象,并可以通过修改fill_color、back_color参数来调整小格子颜色和背景色 img = img.convert("RGBA") #将图片转换为RGBA格式 if logo and os.path.exists(logo): try: icon = Image.open(logo) img_w, img_h = img.size #img_w、img_h是二维码的尺寸 except Exception as e: print(e) sys.exit(1) factor = 4 size_w = int(img_w / factor) size_h = int(img_h / factor) icon_w, icon_h = icon.size #icon_W、icon_h是logo原始的尺寸 if icon_w > size_w: #size_W、size_h是二维码尺寸的1/factor icon_w = size_w if icon_h > size_h: icon_h = size_h icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS) #antialias是平滑处理 # 保证二维码大小不超过二维码大小的1/factor w = int((img_w - icon_w) / 2) #计算logo在二维码中的相对位置 h = int((img_h - icon_h) / 2) icon = icon.convert("RGBA") img.paste(icon, (w, h), icon) #根据相对位置w、h将logo放到二维码图片上,所以说实际是logo并不是二维码的一部分,会遮挡二维码的一部分,不能太大,否则无法识别 img.save(path) # 调用系统命令打开图片 # xdg - open(opens a file or URL in the user's preferred application) #os.system('xdg-open %s' %(path)) #这是Linux系统的命令 os.startfile(path) #windows 下打开文件if __name__ == "__main__": info = "https://blog.csdn.net/weixin_45386875?spm=1010.2135.3001.5343" #二维码的链接 pic_path = "qr.png" #生成的图片保存文件 logo_path = "logo.png" #logo的文件名 gen_qrcode(info, pic_path,logo_path ) #调用函数
以上是介紹python應用學習之qrcode產生二維碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

使用NumPy創建多維數組可以通過以下步驟實現:1)使用numpy.array()函數創建數組,例如np.array([[1,2,3],[4,5,6]])創建2D數組;2)使用np.zeros(),np.ones(),np.random.random()等函數創建特定值填充的數組;3)理解數組的shape和size屬性,確保子數組長度一致,避免錯誤;4)使用np.reshape()函數改變數組形狀;5)注意內存使用,確保代碼清晰高效。

播放innumpyisamethodtoperformoperationsonArraySofDifferentsHapesbyAutapityallate AligningThem.itSimplifififiesCode,增強可讀性,和Boostsperformance.Shere'shore'showitworks:1)較小的ArraySaraySaraysAraySaraySaraySaraySarePaddedDedWiteWithOnestOmatchDimentions.2)

forpythondataTastorage,choselistsforflexibilityWithMixedDatatypes,array.ArrayFormeMory-effficityHomogeneousnumericalData,andnumpyArraysForAdvancedNumericalComputing.listsareversareversareversareversArversatilebutlessEbutlesseftlesseftlesseftlessforefforefforefforefforefforefforefforefforefforlargenumerdataSets; arrayoffray.array.array.array.array.array.ersersamiddreddregro

Pythonlistsarebetterthanarraysformanagingdiversedatatypes.1)Listscanholdelementsofdifferenttypes,2)theyaredynamic,allowingeasyadditionsandremovals,3)theyofferintuitiveoperationslikeslicing,but4)theyarelessmemory-efficientandslowerforlargedatasets.

toAccesselementsInapyThonArray,useIndIndexing:my_array [2] accessEsthethEthErlement,returning.3.pythonosezero opitedEndexing.1)usepositiveandnegativeIndexing:my_list [0] fortefirstElment,fortefirstelement,my_list,my_list [-1] fornelast.2] forselast.2)

文章討論了由於語法歧義而導致的Python中元組理解的不可能。建議使用tuple()與發電機表達式使用tuple()有效地創建元組。 (159個字符)

本文解釋了Python中的模塊和包裝,它們的差異和用法。模塊是單個文件,而軟件包是帶有__init__.py文件的目錄,在層次上組織相關模塊。

文章討論了Python中的Docstrings,其用法和收益。主要問題:Docstrings對於代碼文檔和可訪問性的重要性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具