情人节来了,快来给最喜欢的人打上最浪漫的马赛克吧~
程序员文章站
2024-03-19 08:55:16
...
1. 按
前段时间,在微博上刷到了一条推荐。内容是这样的:
出于好奇,我点开了,放大再放大,emmm,有点意思吖…
这四个字,对于像我这样腼腆的DS男来说,还真不好意思说,说出来,万一被拒绝了咋办?
使用套路来表白,并观察对方的反应,你大概能清楚对方是否对你也有好感,先测试下自己有几成的把握再下手或许更稳妥。
今天就教大家一个这样的套路:如何使用 Python 来做出来这样的图,有点浪漫,又有点极客。能不能拿下你女神,就要靠你(命)了。(๑•́₃ •̀๑)
PS:表白一般不过是走走过场,一定要提前通过多次暗示保证对方对你有意思,不然结果一般挺尴尬的。
这就像结婚一样,不可能随便在大街上拉个女的就和你结婚的,一定是提前确认好的,结婚不过是走走过场而已。
2. 效果
2.1. 原图
-
src/demo.jpg
首先,你得先找到一张你女神的高清图片(尽量分辨率高点的吧,效果会好点)。
2.2. 效果图
先修改textList.txt
中的文本,默认的是三行文字,每一行文字都是一句话,具体可以自己设置。每一句话会生成一张不同的效果图片。
注意textList.txt
文件的编码为utf-8
,请确保修改过后的文件的编码为utf-8
,否则将会出现乱码。
然后再使用我写好的脚本运行后,就生成了这样的效果图,请你点击,放大再放大。(惊喜?
-
out/demo_最漂亮的姑娘!.jpg
-
out/demo_我喜欢你!.jpg
-
out/demo_如果不能给你快乐,那祝你一路平安!.jpg
3. 代码
textList.txt
最漂亮的姑娘!
我喜欢你!
如果不能给你快乐,那祝你一路平安!
main.py
from PIL import Image, ImageDraw, ImageFont
from os.path import join
import os
font_size = 12
textLi = []
def initTextList():
global textLi
textLi = []
with open("textList.txt", 'r', encoding='utf-8') as f:
t = f.readline()
while t:
if not t == '':
t = t.replace("\n", '')
textLi.append(t)
t = f.readline()
print(textLi)
def character_generator(txt):
while True:
for t in txt:
yield t
def convert(imgName):
print(imgName)
for text in textLi:
savePath = join("./out", "%s_%s.jpg" % (str.split(imgName, ".")[0], text))
if os.path.exists(savePath):
break
ch_gen = character_generator(text)
img_path = join("./src/", imgName)
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)
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(savePath)
if __name__ == "__main__":
srcPath = r"./src"
outPath = r"./out"
initTextList()
if not os.path.exists(outPath):
os.mkdir(outPath)
li = os.listdir(srcPath)
for i in li:
convert(i)
4. exe可执行程序
- 说明:将图片放到
src
文件夹里,然后运行main.exe
,执行完毕程序会自动退出,效果图在out
文件夹里。
如需重新生成相应的效果图,请删除out
文件夹里相应的文件。 - 下载:https://sn9.us/dir/13403389-37323936-c2c9ee
上一篇: 跃锦成龙之插入音乐