社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

MilFun • 5 年前 • 321 次点击  
阅读 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”。

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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49312
 
321 次点击