python將url轉換成二維碼


准備環境
python生成二維碼,需要依賴包qrcode和PIL(二維碼的實質就是一個url。)
python3安裝PIL:pip install PIL
python2安裝PIL:pip install pillow
 
生成二維碼的方法
1.將url生成二維碼的最簡單的示例如下:
import qrcode
img=qrcode.make("www.zhuanzhuan.com")
img.save("./test.png")
 
2.可以通過qrcode的一些配置項來更改生成二維碼的樣式,比如寬度、大小、容錯系數
qr=qrcode.QRCode(
    version=2,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=8,
    border=2
    )
3.可以將本地的一個圖片粘貼到二維碼圖片上(限制圖片大小)
代碼如下:
import qrcode
from PIL import Image
 
url="www.zhuanzhuan.com"
qr=qrcode.QRCode(
    version=2,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=8,
    border=2
    )
qr.add_data(url)
qr.make(fit=True)
img=qr.make_image()
img=img.convert("RGBA")
icon=Image.open("./logo.png")
img_w,img_h=img.size
factor=4
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
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)
 
img.save("./test.png")
 
注意:
1.加上的圖片必須是本地圖片,用網絡圖片不可以這么寫
2.粘貼的圖片必須和二維碼生成的格式一致,都是png
 
遇到的問題:
1.二維碼增加圖片這步,報錯: ValueError: bad transparency mask
原因:說是python的PIL合並圖片時出錯,但是我的兩個圖片都是png,然后根據網上搜索到的方案轉換了一下要粘貼的本地圖片,重新轉換成png格式,解決了這個問題
 
2.python2+mac和python2+Ubuntu的系統,PIL裝不上,使用qrcode去生成二維碼時報錯:IOError: encoder zip not available
解決方法:
1.先將PIL卸載,然后重新安裝pillow
pip uninstall PIL
pip install pillow
有的安裝pillow的時候還會報缺東西的問題,有可能是缺下面這些,直接安裝一般都解決了
apt-get install libjpeg62 libjpeg62-dev zlib1g-dev libfreetype6 libfreetype6-dev
下面附上一個帶圖片的二維碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM