生成带logo的二维码
# import qrcode # img=qrcode.make("www.baidu.com") # img.save("test.png") """ 生成带logo的二维码 """ import qrcode from PIL import Image import os def gen_qrcode(string, path, logo=""): """ 生成中间带logo的二维码 需要安装qrcode, PIL库 :param string: 二维码字符串 :param path: 生成的二维码保存路径 :param logo: logo文件路径 :return: """ #设置二维码相关参数 qr = qrcode.QRCode( version=8, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=1 ) qr.add_data(string) qr.make(fit=True) #生成二维码图片 img = qr.make_image() img = img.convert("RGBA") img.save("a.png") if logo and os.path.exists(logo): icon = Image.open(logo) #获取二维码的宽和高 img_w, img_h = img.size factor = 3 size_w = int(img_w / factor) size_h = int(img_h / factor) #获取logo的宽和高 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) #设置设置logo在二维码中的位置 w = int((img_w - icon_w) / 2) h = int((img_h - icon_h) / 2) icon = icon.convert("RGBA") img.paste(icon, (w, h), icon) img.save(path) print("二维码已生成") else: print("logo图片不存在") if __name__ == "__main__": gen_qrcode('海内存知己天涯若比邻',"qr.png", "haha.gif")