自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

情人節(jié)來了,教你個(gè)用 Python 表白的技巧

開發(fā) 后端
2020年,這個(gè)看起來如此浪漫的年份,你還是一個(gè)人嗎?難不成我還能是一條狗?18年的時(shí)候,寫過一篇介紹如何使用 Python 來表白的文章。

 2020年,這個(gè)看起來如此浪漫的年份,你還是一個(gè)人嗎? 

[[314863]]

難不成我還能是一條狗?

18年的時(shí)候,寫過一篇介紹如何使用 Python 來表白的文章。

雖然創(chuàng)意和使用效果都不錯(cuò),但有一缺點(diǎn),這是那個(gè)exe文件,女神需要打開電腦,才有可能參與進(jìn)來,進(jìn)而被你成功"調(diào)戲”。

由于是很早期的文章了,應(yīng)該有很多人沒有看過。

沒有看過的,你可以點(diǎn)擊這里查看:用Python寫一個(gè)表白神器讓你脫離單身

提醒你一下,后天就是 2月14日了。什么?還是一條狗呢?

行吧,那你趕上了,今天的文章,就是為你而寫。

明哥今天來教你如何使用 Python 來向心中的女神表白。

前段時(shí)間,在微博上刷到了一條推薦。內(nèi)容是這樣的

出于好奇,我點(diǎn)開了,放大再放大,emmm,有點(diǎn)意思吖…

這四個(gè)字,對于像我這樣靦腆的DS男來說,還真不好意思說,說出來,萬一被拒絕了咋辦?

使用套路來表白,并觀察對方的反應(yīng),你大概能清楚對方是否對你也有好感,先測試下自己有幾成的把握再下手或許更穩(wěn)妥。

今天就教大家一個(gè)這樣的套路:如何使用 Python 來做出來這樣的圖,有點(diǎn)浪漫,又有點(diǎn)極客。能不能拿下你女神,就要靠你(命)了。(๑•́₃ •̀๑)

首先,你得先找到一張你女神的高清圖片(盡量分辨率高點(diǎn)的吧,效果會好點(diǎn))。

這里我以一張高圓圓的圖來做一下演示,原圖是這樣的(分辨率是:2000*1328)。

[[314865]]

使用我寫好的腳本運(yùn)行后,就生成了這樣一張圖,請你點(diǎn)擊,放大再放大。(驚喜?

然后將這張圖片發(fā)給你的女神,具體話術(shù)你自己想咯。

好吧,相比女神來說,你可能更在意這是如何實(shí)現(xiàn)的(活該你單身)。

其實(shí)原理很簡單,代碼也還不到20 行。

首先,來講講原理。

事實(shí)上,每一張圖片都是由一個(gè)一個(gè)的像素點(diǎn)所組成的。而每個(gè)像素點(diǎn),都有自己的顏色,其顏色可以用一個(gè)數(shù)組來表示:(a,b,c),其中每位數(shù)的取值范圍都是 0-255。

比如(0,0,0)代表白色,(255,255,255)代表黑色。

當(dāng)像素點(diǎn)足夠多的時(shí)候,這張照片就是我們所說的高清照片。

而如果當(dāng)像素點(diǎn)太少,我們的肉眼就能感知到明顯的鋸齒感。

用 Excel 畫了個(gè)圖,每一方格代表一個(gè)像素,其中若我的字體的大小設(shè)置 5(非字號5,而是每個(gè)字占用5個(gè)像素),效果大概就是如下這樣子。

我只要每個(gè)像素取出一個(gè)像素值,并使用這個(gè)像素做為該字的顏色即可,在像素量夠多的情況下,從遠(yuǎn)處看,是能看到我們原來圖像的輪廓的。

有了思路,就可以開始我們的代碼。

首先,使用 pillow.Image讀取圖像,并使用load函數(shù)獲取到每一個(gè)像素值。

  1. img_raw = Image.open(img_path) 
  2. img_array = img_raw.load() 

然后新建一張畫布,并選好你要使用的字體和字體大小。

  1. img_new = Image.new("RGB", img_raw.size, (0, 0, 0)) 
  2. draw = ImageDraw.Draw(img_new) 
  3. font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size) 

由于需要不斷循環(huán) “我喜歡你!”,這五個(gè)字符。所以這里可以while循環(huán) yield 來實(shí)現(xiàn)一個(gè)生成器。

  1. def character_generator(text): 
  2.     while True
  3.         for i in range(len(text)): 
  4.             yield text[i] 

最后,要給這些字加上相應(yīng)的顏色,寫入新創(chuàng)建的畫布中。

  1. for y in range(0, img_raw.size[1], font_size): 
  2.     for x in range(0, img_raw.size[0], font_size): 
  3.         draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None) 

最后將成品保存

  1. img_new.convert('RGB').save("F://gyy_save.jpeg"

完整代碼如下,供你參考

  1. from PIL import Image, ImageDraw, ImageFont 
  2.  
  3. font_size = 7 
  4. text = "我喜歡你!" 
  5. img_path = "F://gyy.jpeg" 
  6.  
  7. img_raw = Image.open(img_path) 
  8. img_array = img_raw.load() 
  9.  
  10. img_new = Image.new("RGB", img_raw.size, (0, 0, 0)) 
  11. draw = ImageDraw.Draw(img_new) 
  12. font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size) 
  13.  
  14. def character_generator(text): 
  15.     while True
  16.         for i in range(len(text)): 
  17.             yield text[i] 
  18.  
  19. ch_gen = character_generator(text) 
  20.  
  21. for y in range(0, img_raw.size[1], font_size): 
  22.     for x in range(0, img_raw.size[0], font_size): 
  23.         draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None) 

最后再多上幾張效果圖吧(對,我是海賊迷)。

1. 路飛

2. 索隆

3. 山治

 

 

責(zé)任編輯:華軒 來源: Python編程時(shí)光
相關(guān)推薦

2015-08-20 16:12:40

2012-02-13 15:13:48

情人節(jié)

2014-02-13 14:02:04

原點(diǎn)手機(jī)

2012-02-14 09:31:03

微軟安全漏洞

2020-02-14 12:26:55

Python愛心情人節(jié)

2020-02-14 15:16:16

程序員表白浪漫

2012-02-09 17:57:10

2023-02-14 13:44:03

情人節(jié)ChatGPTAI

2012-02-13 11:09:02

2012-02-14 16:06:38

一體機(jī)推薦

2014-02-13 17:48:10

情人節(jié)程序員App

2011-02-14 10:23:46

2014-02-14 17:04:04

元宵節(jié)

2011-02-15 09:33:46

AMD英特爾情人節(jié)

2012-02-08 13:54:22

投影儀推薦

2011-02-17 16:43:03

2011-02-14 10:20:38

2012-02-14 14:50:43

2020-02-10 10:17:24

5G4K網(wǎng)絡(luò)

2018-08-17 14:33:38

社交
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號