1. 程式人生 > >Python3生成帶logo的二維碼

Python3生成帶logo的二維碼

最近有個需求:批量生成帶Logo的二維碼

生成二維碼比較簡單,網上的資源也比較多,不贅述了。自己研究了一下加了logo並且美化了一下(網上的資源直接加Logo特別醜!!!忍不了!!!),直接上程式碼:

def create_qrcode(url, filename):
    qr = qrcode.QRCode(
        version=1,
        #設定容錯率為最高
        error_correction=qrcode.ERROR_CORRECT_H,
        box_size=10,
        border=4,
    )
    qr.add_data(url)
    qr.make(fit=True)

    img = qr.make_image()
    #設定二維碼為彩色
    img = img.convert("RGBA")
    icon = Image.open('/Users/Jason/Desktop/qrcode/logo.png')
    w, h = img.size
    factor = 4
    size_w = int(w / factor)
    size_h = int(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((w - icon_w) / 2)
    h = int((h - icon_h) / 2)
    icon = icon.convert("RGBA")
    newimg = Image.new("RGBA", (icon_w + 8, icon_h + 8), (255, 255, 255))
    img.paste(newimg, (w-4, h-4), newimg)

    img.paste(icon, (w, h), icon)
    img.save('/Users/Jason/Desktop/qrcode/' + filename + '.png', quality=100)