1. 程式人生 > >使用python 生成二維碼 中間帶logo

使用python 生成二維碼 中間帶logo

推薦兩個庫:qrcode 和 python-qrcode。
qrcode 執行在 Python 3 版本上,它可以玩出很多花樣。例如能生成以下三種二維碼圖片:普通二維碼、帶圖片的藝術二維碼(黑白與彩色)、動態二維碼(黑白與彩色)。它比較適合直接用於生成二維碼圖片的場景。

安裝 qrcode 庫可以使用 pip 方式。但是該庫依賴 pillow、numpy 和imageio。因此,我們需要先安裝依賴庫,再安裝 qrcode。

  • 首先逐一安裝需要的庫
# 逐一安裝
pip install pillow
pip install numpy
pip install imageio
pip install
myqr
  • python-qrcode
    python-qrcode 相比 qrcode 要稍微遜色一點。不過它也有自己的特色。它支援生成向量圖,而且比較適合在程式碼中生成二維碼的場景。

    安裝 python-qrcode 同樣建議使用 pip 方式,安裝命令如下:

pip install qrcode

安裝完這些依賴的庫以後就可以開工啦。下面是完整的程式碼:

#!/user/bin/Python3


import qrcode
from PIL import Image
import matplotlib.pyplot as plt

'''
【紅色】:red 【橙色】:orange 【黃色】:yellow 【綠】:green 【 藍】:blue【紫】:purple 
【灰色】:gray 【白色】:white 【粉紅色】:pink 【黑色】:black【墨綠色】:dark green 【橙紅色】:orange-red
'''
def getQRcode(strs, name): qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=2, ) # 新增資料 qr.add_data(strs) # 填充資料 qr.make(fit=True) # 生成圖片 img = qr.make_image(fill_color="blue", back_color="white"
) img = img.convert("CMYK") # RGBA # 新增logo icon = Image.open("1233.png") # 獲取圖片的寬高 img_w, img_h = img.size factor = 6 size_w = int(img_w / factor) size_h = int(img_h / factor) icon_w, icon_h = icon.size if icon_w > size_w: icon_w = size_w if icon_h > size_h: icon_h = size_h # 重新設定logo的尺寸 icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS) w = int((img_w - icon_w) / 2) h = int((img_h - icon_h) / 2) img.paste(icon, (w, h), icon) # 顯示圖片 plt.imshow(img) plt.show() img.save(name) return img if __name__ == '__main__': getQRcode("https://music.163.com/song?id=36990266&userid=112961323", '01.png') print('execute.....')