看到一個生成二維碼的很有意思的文字,轉載Mark一下,后面慢慢研究。
參考連接:https://www.cnblogs.com/babycool/p/4734819.html
1 __author__ = '' 2 #coding:utf-8 3 ''' 4 Python生成二維碼 v1.0 5 主要將文本生成二維碼圖片 6 7 測試一:將文本生成白底黑字的二維碼圖片 8 測試二:將文本生成帶logo的二維碼圖片 9 10 ''' 11 12 __author__ = 'Xue' 13 14 import qrcode 15 from PIL import Image 16 import os 17 18 #生成二維碼圖片 19 def make_qr(str,save): 20 qr=qrcode.QRCode( 21 version=4, #生成二維碼尺寸的大小 1-40 1:21*21(21+(n-1)*4) 22 error_correction=qrcode.constants.ERROR_CORRECT_M, #L:7% M:15% Q:25% H:30% 23 box_size=10, #每個格子的像素大小 24 border=2, #邊框的格子寬度大小 25 ) 26 qr.add_data(str) 27 qr.make(fit=True) 28 29 img=qr.make_image() 30 img.save(save) 31 32 33 #生成帶logo的二維碼圖片 34 def make_logo_qr(str,logo,save): 35 #參數配置 36 qr=qrcode.QRCode( 37 version=4, 38 error_correction=qrcode.constants.ERROR_CORRECT_Q, 39 box_size=8, 40 border=2 41 ) 42 #添加轉換內容 43 qr.add_data(str) 44 # 45 qr.make(fit=True) 46 #生成二維碼 47 img=qr.make_image() 48 # 49 img=img.convert("RGBA") 50 51 #添加logo 52 if logo and os.path.exists(logo): 53 icon=Image.open(logo) 54 #獲取二維碼圖片的大小 55 img_w,img_h=img.size 56 57 factor=4 58 size_w=int(img_w/factor) 59 size_h=int(img_h/factor) 60 61 #logo圖片的大小不能超過二維碼圖片的1/4 62 icon_w,icon_h=icon.size 63 if icon_w>size_w: 64 icon_w=size_w 65 if icon_h>size_h: 66 icon_h=size_h 67 icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS) 68 #詳見:http://pillow.readthedocs.org/handbook/tutorial.html 69 70 #計算logo在二維碼圖中的位置 71 w=int((img_w-icon_w)/2) 72 h=int((img_h-icon_h)/2) 73 icon=icon.convert("RGBA") 74 img.paste(icon,(w,h),icon) 75 #詳見:http://pillow.readthedocs.org/reference/Image.html#PIL.Image.Image.paste 76 77 #保存處理后圖片 78 img.save(save) 79 80 81 if __name__=='__main__': 82 save_path='base__runmethod_02.png' #生成后的保存文件 83 logo='logo.jpg' #logo圖片 84 85 path = os.getcwd() + r'\geckodriver.log' 86 print(path) 87 f = open(path,'r+',encoding='UTF-8' ) 88 89 i = f.read() 90 print (i) 91 str=i 92 93 #make_qr(str) 94 95 make_logo_qr(str,logo,save_path)