一、官方文档
https://pypi.org/project/qrcode/
https://pypi.org/project/MyQR/
二、下载包
pip install qrcode #方法多,体量小
pip install myqr #操作简单,功能强大
三、代码
qrcode一行字二维码
import qrcode qrcode.make("不睡觉干嘛呢").get_image().show() #设置URL必须添加http://
qrcode一行字二维码
import qrcode text = input("输入文字或URL:") img =qrcode.make(text) img.save() #保存图片至本地目录,可以设定路径 img.show()
qrcode生成logo二维码
from PIL import Image import qrcode,os def create_qrcode(url,qrcodename): qr = qrcode.QRCode( version=1, # 设置容错率为最高 error_correction=qrcode.ERROR_CORRECT_H, # 用于控制二维码的错误纠正程度 box_size=8, # 控制二维码中每个格子的像素数,默认为10 border=1, # 二维码四周留白,包含的格子数,默认为4 #image_factory=None, 保存在模块根目录的image文件夹下 #mask_pattern=None ) qr.add_data(url) # QRCode.add_data(data)函数添加数据 qr.make(fit=True) # QRCode.make(fit=True)函数生成图片 img = qr.make_image() img = img.convert("RGBA") # 二维码设为彩色 logo = Image.open('xx.jpg') # 传gif生成的二维码也是没有动态效果的 w , h = img.size logo_w , logo_h = logo.size factor = 4 # 默认logo最大设为图片的四分之一 s_w = int(w / factor) s_h = int(h / factor) if logo_w > s_w or logo_h > s_h: logo_w = s_w logo_h = s_h logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS) l_w = int((w - logo_w) / 2) l_h = int((h - logo_h) / 2) logo = logo.convert("RGBA") img.paste(logo, (l_w, l_h), logo) img.show() img.save(os.getcwd()+'/' + qrcodename + '.png', quality=100)
myqr动态二维码
相关参数: words:二维码内容,链接或者句子 version:二维码大小,范围为[1,40] level:二维码纠错级别,范围为{L,M,Q,H},H为最高级,默认。 picture:自定义二维码背景图,支持格式为 .jpg,.png,.bmp,.gif,默认为黑白色 colorized:二维码背景颜色,默认为 False,即黑白色 contrast:对比度,值越高对比度越高,默认为 1.0 brightness:亮度,值越高亮度越高,默认为 1.0,值常和对比度相同 save_name:二维码名称,默认为 qrcode.png save_dir:二维码路径,默认为程序工作路径
# 调用库 from MyQR import myqr # 函数部分 myqr.run( # 网址 words='https://wztlink1013.com', # 控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级 version=5, # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高 level='H', # 将QR二维码图像与一张同目录下的图片相结合,此处设置该图片,可以是gif picture='./input/girl.gif', # 默认是黑白(False),可以选择彩色(True) colorized=True, # 调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。 contrast=1.0, # 调节图片的亮度,用法与contrast相同 brightness=1.0, # 输出文件名,格式可以是jpg,png,bmp,gif save_name='girl.gif', save_dir='./output')
评论区