Python_MyQR——二维码生成
2019-02-28 本文已影响68人
BeautifulSoulpy
python中有一个好玩的库,不仅可以生成各种花色的二维码,还可以生成动态二维码。
MyQR是一个能够生成自定义二维码的第三方库,可以根据需要生成普通二维码、带图片的艺术二维码,也可以生成动态二维码
效果图如下:
首先安装MyQR库,直接用pip install myqr(or MyQR)。需要注意的是MyQR依赖于python3,在python2的环境下可能无法正常运行。
1.生成普通二维码
在程序中导入MyQR包下的模板myqr,其中word参数接收一个字符串作为二维码的内容。
from MyQR import myqr#注意大小写
myqr.run(words='https://www.cnblogs.com/Estate-47/')</pre>
运行后生成一个名为“qrcode.png”的二维码图片,用微信扫一扫生成的二维码,就会自动跳转到这个地址。
2.生成带图片的二维码
myqr.run(words='https://www.cnblogs.com/Estate-47/', picture='girl.jpg',colorized=True)
#图片要和代码保持同一路径
此为彩色图片代码,需要黑白图片就去掉参数colorized=True。另外注意把图片和代码放在同一路径中,否则会报错找不到图片
3.生成动态二维码
可以直接在命令中使用myqr指令生成需要的二维码
myqr 'https://www.cnblogs.com/Estate-47/' -p QX.gif -c
myqr.run(words='https://www.cnblogs.com/Estate-47/', 5 picture='QX.gif',colorized=True)
image
#正确版本
# 先导入模块
import os
from MyQR import myqr
#os.chdir('C:/Users/dell/数据分析师/python基础语法')
myqr.run(
words='https://www.jianshu.com/u/d7f579a391f5',
# 扫描二维码后,显示的内容,或是跳转的链接
version=5, # 设置容错率
level='H', # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
picture='Python.gif', # 图片所在目录,可以是动图
colorized=False, # 黑白(False)还是彩色(True)
contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片。默认为1.0。
brightness=1.0, # 用来调节图片的亮度,用法同上。
save_name='Python.gif', # 控制输出文件名,格式可以是 .jpg, .png ,.bmp ,.gif
)
#报错:Wrong picture! Input a filename that exists and be tailed with one of {'.jpg', '.png', '.bmp', '.gif'}!
#解决方案:picture与save_name 设置一致
#选择困难症状;
# 帮你做选择之我要吃什么
import random
# 将需要用到的表格和变量放在开头
list_food = ['KFC', '蒸菜馆', '楼下快餐店', '桂林米粉', '东北饺子', '金牌猪脚饭', '三及第汤饭'] # 备选菜单,可自定义。
list_choice = []
# 由于两个原因都包含判断过程,所以,为了让代码更简洁,可将其封装成函数。
def choose(list):
while True:
food = random.choice(list)
judgement = input('去吃【%s】好不好啊?同意的话输入y,不想吃直接回车即可。'%(food))
if judgement == 'y':
print('去吃【%s】!就这么愉快地决定啦!'%(food))
break
# 判断环节
reason = int(input('你不知道吃什么的原因是:1.完全不知道吃什么;2.在几家店之间徘徊(请输入1或2):'))
if reason == 1:
choose(list_food)
elif reason == 2:
add = True
while add:
choice = input('请输入让你犹豫的店名(注:一家一家输,完成后输入y):')
if choice != 'y': # 这个判断语句,是为了不将 y 也添加到菜单里。
list_choice.append(choice)
if choice == 'y':
add = False
choose(list_choice)
else:
print('抱歉,目前还不支持第三种情况——不过,你可以加代码哦。')