十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

小編給大家分享一下用Python進(jìn)行表白的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!
2020年,這個(gè)看起來(lái)如此浪漫的年份,你還是一個(gè)人嗎?
難不成我還能是一條狗?
18年的時(shí)候,寫過(guò)一篇介紹如何使用 Python 來(lái)表白的文章。
雖然創(chuàng)意和使用效果都不錯(cuò),但有一缺點(diǎn),這是那個(gè)exe文件,女神需要打開電腦,才有可能參與進(jìn)來(lái),進(jìn)而被你成功"調(diào)戲”。
由于是很早期的文章了,應(yīng)該有很多人沒(méi)有看過(guò)。
沒(méi)有看過(guò)的,你可以點(diǎn)擊這里查看:用Python寫一個(gè)表白神器讓你脫離單身
提醒你一下,今天是情人節(jié)。什么?還是一條狗呢?
行吧,那你趕上了,今天的文章,就是為你而寫。
明哥今天來(lái)教你如何使用 Python 來(lái)向心中的女神表白。
前段時(shí)間,在微博上刷到了一條推薦。內(nèi)容是這樣的

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

這四個(gè)字,對(duì)于像我這樣靦腆的DS男來(lái)說(shuō),還真不好意思說(shuō),說(shuō)出來(lái),萬(wàn)一被拒絕了咋辦?
使用套路來(lái)表白,并觀察對(duì)方的反應(yīng),你大概能清楚對(duì)方是否對(duì)你也有好感,先測(cè)試下自己有幾成的把握再下手或許更穩(wěn)妥。
今天就教大家一個(gè)這樣的套路:如何使用 Python 來(lái)做出來(lái)這樣的圖,有點(diǎn)浪漫,又有點(diǎn)極客。能不能拿下你女神,就要靠你(命)了。(???? ???)
首先,你得先找到一張你女神的高清圖片(盡量分辨率高點(diǎn)的吧,效果會(huì)好點(diǎn))。
這里我以一張高圓圓的圖來(lái)做一下演示,原圖是這樣的(分辨率是:2000*1328)。

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

然后將這張圖片發(fā)給你的女神,具體話術(shù)你自己想咯。
好吧,相比女神來(lái)說(shuō),你可能更在意這是如何實(shí)現(xiàn)的(活該你單身)。
其實(shí)原理很簡(jiǎn)單,代碼也還不到20 行。
首先,來(lái)講講原理。
事實(shí)上,每一張圖片都是由一個(gè)一個(gè)的像素點(diǎn)所組成的。而每個(gè)像素點(diǎn),都有自己的顏色,其顏色可以用一個(gè)數(shù)組來(lái)表示:(a,b,c),其中每位數(shù)的取值范圍都是 0-255。
比如(0,0,0)代表黑色,(255,255,255)代表白色。
當(dāng)像素點(diǎn)足夠多的時(shí)候,這張照片就是我們所說(shuō)的高清照片。
而如果當(dāng)像素點(diǎn)太少,我們的肉眼就能感知到明顯的鋸齒感。
用 Excel 畫了個(gè)圖,每一方格代表一個(gè)像素,其中若我的字體的大小設(shè)置 5(非字號(hào)5,而是每個(gè)字占用5個(gè)像素),效果大概就是如下這樣子。

我只要每個(gè)像素取出一個(gè)像素值,并使用這個(gè)像素做為該字的顏色即可,在像素量夠多的情況下,從遠(yuǎn)處看,是能看到我們?cè)瓉?lái)圖像的輪廓的。
有了思路,就可以開始我們的代碼。
首先,使用 pillow.Image讀取圖像,并使用load函數(shù)獲取到每一個(gè)像素值。
img_raw = Image.open(img_path) img_array = img_raw.load()
然后新建一張畫布,并選好你要使用的字體和字體大小。
img_new = Image.new("RGB", img_raw.size, (0, 0, 0))
draw = ImageDraw.Draw(img_new)
font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size)由于需要不斷循環(huán) “我喜歡你!”,這五個(gè)字符。所以這里可以while循環(huán) yield 來(lái)實(shí)現(xiàn)一個(gè)生成器。
def character_generator(text): while True: for i in range(len(text)): yield text[i]
最后,要給這些字加上相應(yīng)的顏色,寫入新創(chuàng)建的畫布中。
for y in range(0, img_raw.size[1], font_size): for x in range(0, img_raw.size[0], font_size): draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)
最后將成品保存
img_new.convert('RGB').save("F://gyy_save.jpeg")完整代碼如下,供你參考
from PIL import Image, ImageDraw, ImageFont
font_size = 7
text = "我喜歡你!"
img_path = "F://gyy.jpeg"
img_raw = Image.open(img_path)
img_array = img_raw.load()
img_new = Image.new("RGB", img_raw.size, (0, 0, 0))
draw = ImageDraw.Draw(img_new)
font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size)
def character_generator(text):
while True:
for i in range(len(text)):
yield text[i]
ch_gen = character_generator(text)
for y in range(0, img_raw.size[1], font_size):
for x in range(0, img_raw.size[0], font_size):
draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)
img_new.convert('RGB').save("F://save.jpeg")以上是用Python進(jìn)行表白的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!