上一节:
面对广大钢铁直男的需求,再次做一期与女朋友相关的文章。将你要对女朋友说的悄悄话,保存在图片里,扫描二维码才可见哦!
前期预备 模块下载
下载
使用说明…
qrcode使用说明:https://github.com/lincolnloop/python-qrcode#advanced-usage
pillow使用手册:https://pillow-cn.readthedocs.io/zh_CN/latest/
qrcode使用说明:https://github.com/lincolnloop/python-qrcode#advanced-usage
pillow使用手册:https://pillow-cn.readthedocs.io/zh_CN/latest/
上面为有不懂的请查看使用手册,但是是英文版的哦~!
思路
开始Coding…
一点点来开发,不要急于求成:
导入模块
这次的课程,我们要用到qrcode模块,pil模块也要用,没有下载的请根据上面的步骤进行下载哦。这些模块我们都有了,所以直接导入:
# 导入模块
import qrcode
from PIL import Image, ImageFilter,ImageFont,ImageDraw
底图进行模糊
打开同文件夹下面的图片,然后调用filter对图片进行高斯模糊,后面的半径值越大,模糊效果越明显:
im = Image.open('s.jpg')
#对图片进行模糊效果 模糊值,越大越模糊
im2 = im.filter(ImageFilter.GaussianBlur(radius=20))
生成二维码
原则上,很简单就能实现二维码,如下面代码:
# 生成二维码
img = qrcode.make("关注MilFun,学习有趣的知识!")
但是为了我们实际的需要,我们做些改变:
# 生成二维码内容
def code(cid):
# 设置二维码数据
if cid==1 :
# 你在我公众号【米饭联盟】获取的key值
data = 'https://milfun.fun/m/Camer/index.php/Home/Index/makepic.html?key=6OfgBkRk'
else:
# 你想要在二维码里面隐藏的话。
data ="亲爱的\n往后余生,风雪是你,\n平淡是你,清贫也是你\n😘😘😘😘😘😘\n荣华是你,心底温柔是你,\n目光所致,也是你"
# 生成二维码
qr = qrcode.QRCode(
version=1, #二维码的格子矩阵大小,可以是1到40,1最小为21*21,40是177*177
error_correction=qrcode.constants.ERROR_CORRECT_L, #二维码错误容许率,默认ERROR_CORRECT_M,容许小于15%的错误率
box_size=5, #二维码每个小格子包含的像素数量
border=4, #二维码到图片边框的小格子数,默认值为4
)
qr.add_data(data=data)
# 启用二维码颜色设置
qr.make(fit=True)
# 二维码的颜色 前景色 背景色
img = qr.make_image(fill_color="black", back_color="white")
return img
#根据你的需求来改下面的代码
qrImg = code(2) #1为扫二维码去公众号看原图加文字,2为扫二维码直接看文字
把这功能定义成函数,然后根据需要调用,具体查看代码里面的注释,我都写了很清楚了。为了配套这个代码,我还写了一个网页,来实现公众号查看隐藏的图片,需要体验,请点击阅读原文。
体验操作gif:
图片合并
二维码生成好之后,我们的两张图片就都处理好了,借用paste函数,将他们两张图黏贴在一起:
# 二维码放在底图上,定位放在中间
im2.paste(qrImg,(int(im2.size[0]/2-qrImg.size[0]/2) , int(im2.size[1]/2-qrImg.size[1]/2)))
写上引导字
接下来就是你要写一些说明,让大家看了图片就要扫二维码,
# 写字在最终图上
strs = "扫码查看我想对你说的话"
# 字体 字体 大小
font = ImageFont.truetype('方正喵呜体.ttf', 30)
draw = ImageDraw.Draw(im2)
# 字的位置 x y 字的内容 字体 颜色rgb值
draw.text((im2.size[0]/2-160,im2.size[1]-50),strs , font=font, fill=(34,24,61))
发给你女朋友
图片都做好了,就要查看一下,然后保存到本地,相同文件夹下面,然后,你可以拿着图片去找你女朋友啦!
# 发给女朋友
im2.show()
# 保存到本地
im2.save("qrImg.jpg")
测试一下
运行一下代码,出现下图,扫码:
扫描一下呢?出现下图:
切换成第一中二维码生成方式呢?
#根据你的需求来改下面的代码
qrImg = code(1) # 2改成1
你女朋友扫码后,看见这样:
快来试一试吧!
python完整代码
请发送【源码】,今天文件名为“img.zip”。
有什么疑问,请添加小哥哥!
↓ ↓ ↓ 私聊小哥哥一起学习吧 ↓ ↓ ↓
不成功、便成人!