如何用python將你對女友的悄悄話,藏在圖片裏(源碼)

上一節:php

<<怎樣用Python討您的女友歡心(附源碼)>>html

面對廣大鋼鐵直男的需求,再次作一期與女友相關的文章。將你要對女友說的悄悄話,保存在圖片裏,掃描二維碼纔可見哦!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… 上面爲有不懂的請查看使用手冊,可是是英文版的哦~!git

思路

開始Coding...github

一點點來開發,不要急於求成:函數

導入模塊

此次的課程,咱們要用到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: oop

圖片合併

二維碼生成好以後,咱們的兩張圖片就都處理好了,借用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 你女友掃碼後,看見這樣:post

快來試一試吧!學習

python完整代碼測試

請發送【源碼】,今天文件名爲「img.zip」。

有什麼疑問,請添加小哥哥!

↓ ↓ ↓ 加小哥哥一塊兒學習吧 ↓ ↓ ↓

相關文章
相關標籤/搜索