上一节:

<<怎样用Python讨您的女朋友欢心(附源码)>>

面对广大钢铁直男的需求,再次做一期与女朋友相关的文章。将你要对女朋友说的悄悄话,保存在图片里,扫描二维码才可见哦!

前期预备 模块下载

下载


使用说明…

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”。

有什么疑问,请添加小哥哥!

↓ ↓ ↓ 私聊小哥哥一起学习吧 ↓ ↓ ↓

不成功、便成人!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐