在ubuntu 16.04.5 LTS上使用Python 2.7生成带logo的二维码实战
安裝依賴庫
詳細的使用python模塊qrcode庫的博文,參見
https://blog.csdn.net/tao_627/article/details/85053884
下面的例子需要使用qrcode,pillow,matplotlib和python-tk庫,安裝如下
sudo pip install qrcode
sudo pip install pillow
sudo pip install matplotlib
sudo apt-get install python-tk
代碼如下
#!/usr/bin/env python
#encoding: utf-8
#description: 生成二維碼,中間帶logo
#date: 2018-12-17import qrcode
from PIL import Image
import matplotlib.pyplot as plt def getORCode(strs, name):qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=2,)#添加數(shù)據(jù)qr.add_data(strs)#填充數(shù)據(jù)qr.make(fit=True)#生成圖片img = qr.make_image(fill_color="blue", back_color="white")#img = img.convert("CMYK") #添加logoicon = Image.open("1233.png")#獲取圖片的寬高img_w, img_h = img.sizefactor = 6 size_w = int(img_w / factor)size_h = int(img_h / factor)#獲取logo的寬高icon_w, icon_h = icon.sizeif icon_w > size_w:icon_w = size_wif 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 imgif __name__ == '__main__':getORCode('https://music.163.com/song?id=36990266&userid=112961323', '03.png')print('execute......')
執(zhí)行下面的命令
python qrcode_demo3.py
然后會彈出一個新窗口,顯示藍色的二維碼圖,使用微信掃描,會自動跳轉到網(wǎng)易云音樂的一個播放頁面,開始播放歌曲。
效果如下
遇到的坑記錄如下
1.缺python-tk包
解決方法:sudo apt-get install python-tk
2.img.paste()函數(shù)報錯
self.im.paste(im, box, mask.im)
ValueError: bad transparency mask
發(fā)現(xiàn)網(wǎng)上這篇文章
https://blog.csdn.net/dugudaibo/article/details/78894565
有啟發(fā),將原來的logo文件由jpeg格式替換為png格式的圖片,就可以了。
3.無法保存二維碼圖片
IOError: cannot write mode CMYK as PNG
將CMYK那行代碼注釋掉。
?
總結
以上是生活随笔為你收集整理的在ubuntu 16.04.5 LTS上使用Python 2.7生成带logo的二维码实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Ubuntu 16.04.5 LTS上
- 下一篇: 在Ubuntu 16.04.5 LTS上