马上圣诞节,快到了!
~
又到了一年一度表白的时候了
今天教你一个程序员方式的表白!
看一下效果图:
要什么样的,图案都可以自定义的
首先,准备阶段
收集你喜欢人(或者你)的照片,多多益善!
然后需要用到的环境
- python 3.6
- pycharm
- pygame
- PIL
- random
- os
接下来,写代码
分为两部分
1.字体形状
import pygame
text = '祝你成功!'
font_size = 30
pygame.init()
font = pygame.font.Font('msyh.ttc', font_size)
print(font)
font_text = font.render(text, True, (0, 0, 0), (255, 255, 255))
print(font_text)
height = font_text.get_height()
width = font_text.get_width()
print('height: ', height)
print('width: ', width)
print(font_text.get_at((1, 1))[0])
image_row_list = []
for x in range(height):
image_col_list = []
for y in range(width):
if font_text.get_at((y, x))[0] != 255:
image_col_list.append(1)
else:
image_col_list.append(0)
image_row_list.append(image_col_list)
for row in image_row_list:
print(row)
2.按照字体形状去贴你准备好的图片
from PIL import Image
import os
import random
width_len = len(image_row_list[0])
height_len = len(image_row_list)
new_image = Image.new('RGB', (width_len * 100, height_len * 100), (255, 255, 255))
img_size = 100
for row in range(height_len):
for clo in range(width_len):
if image_row_list[row][clo] == 1:
source_image = Image.open('images\\' + random.choice(os.listdir(r'images')))
source_image = source_image.resize((img_size, img_size), Image.ANTIALIAS)
new_image.paste(source_image, (clo * img_size, row * img_size))
print('正在生成照片墙...')
new_image.save(text + '.png')
print('保存完毕, 请在当前文件项目下查找')
效果图:
这样就大功告成了!
学‘废’了嘛?
欢迎留言评论!
文章没看懂没关系,我这还有视频教程:表白墙←点击左边蓝色文字就可以跳转观看了
Python基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)