常见的两种简单生成二维码方法,目测均是很好用的
1.MyQR 要求是python3 ,并且二维码上的内容不支持中文
#1.生成普通二维码
#在程序中导入MyQR包下的模板myqr,其中word参数接收一个字符串作为二维码的内容。
from MyQR import myqr
myqr.run(words='https://www.cnblogs.com/Estate-47/p/9661543.html')
#2.生成带图片的二维码 图片要和代码保持同一路径
myqr.run(words='https://www.cnblogs.com/Estate-47/p/9661543.html',picture='girl.jpg',colorized=True)
#此为彩色图片代码,需要黑白图片就去掉参数colorized=True。另外注意把图片和代码放在同一路径中,否则会报错找不到图片
参考资源:
2.QRCode
import qrcode,os
text = input("输入文字或URL:")
img =qrcode.make(text)
img.save(os.getcwd()+'/' + qrcodename + '.png') #保存图片至本地目录,可以设定路径
img.show()
参考连接
根据给定的信息,快速生成批量二维码
#!user/bin/python
#coding:utf-8
from PIL import Image
import qrcode,os,sys
import pandas as pd
import datetime
reload(sys)
sys.setdefaultencoding('utf-8')
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('logo.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)
if __name__ == "__main__":
df = pd.read_excel("virusinfo.xlsx",encoding='gbk')
for i in df.index.tolist():
#import pdb;pdb.set_trace()
text = u"检测报告"+"\n"+u"说明:2019新型冠状病毒筛查"+"\n"+u"编号: "+df["barcode"][i]+"\n"+u"姓名: "+ \
df["name"][i]+"\n"+ u"证件号: "+str(df["id"][i])+"\n"+u"送检单位: "+df["unit"][i]+"\n" + \
u"结果: "+df["result"][i]+"\n"+u"检测日期: "+df["exp_data"][i].strftime("%Y-%m-%d")+"\n" + \
u"报告日期: "+ df["reportdate"][i].strftime("%Y-%m-%d")+"\n"
codename = df["name"][i]+"_"+df["barcode"][i]
create_qrcode(text,codename)