今天看啥  ›  专栏  ›  MilFun

如何用python将你对女朋友的悄悄话,藏在图片里(源码)

MilFun  · 掘金  ·  · 2019-11-09 11:08
阅读 101

如何用python将你对女朋友的悄悄话,藏在图片里(源码)

上一节:

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

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

前期预备 模块下载

使用说明..


qrcode使用说明:https://github.com/lincolnloop/python-qrcode#advanced-usage
pillow使用手册:https://pillow-cn.readthedocs.io/zh_CN/latest/
复制代码

qrcode使用说明:github.com/lincolnloop… pillow使用手册:pillow-cn.readthedocs.io/zh_CN/lates… 上面为有不懂的请查看使用手册,但是是英文版的哦~!

思路

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

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

↓ ↓ ↓ 加小哥哥一起学习吧 ↓ ↓ ↓




原文地址:访问原文地址
快照地址: 访问文章快照