Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

這段 Python 代碼,可以讓你脫單

2021 年 3 月 12 日 寰球瞭望台

優質文章,第一時間送達!

這段 Python 代碼,可以讓你脫單

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

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

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

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

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

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

這段 Python 代碼,可以讓你脫單

我只要每個像素取出一個像素值,並使用這個像素做爲該字的顔色即可,在像素量夠多的情況下,從遠處看,是能看到我們原來圖像的輪廓的。

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

首先,使用 pillow.Image讀取圖像,並使用load函數獲取到每一個像素值。

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)

由于需要不斷循環 “我喜歡你!”,這五個字符。所以這裏可以while循環 yield 來實現一個生成器。

def character_generator(text):
while True:
for i in range(len(text)):
yield text[i]

最後,要給這些字加上相應的顔色,寫入新創建的畫布中。

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”)

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

1. 路飛

這段 Python 代碼,可以讓你脫單

3. 山治

相關文章:

  • 如何加密你的 Python 代碼
  • 有哪些足不出戶,能用十天掌握的新技能?
  • 戳破針對「木蘭」編程語言的拙劣謠言
  • 華爲都開始用Linux了,你還不來了解下全球第三大桌面操作系統?
  • 12小時刪!付費買的資源,請低調使用!
  • 懂Excel輕松入門Python數據分析包pandas(二十七):IF函數代替者
搞笑

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們