Python项目——表白照片墙
1、介绍
- 利用女神的照片,组成女神的名字,向女神表白。如下图:
- 原理:获取每个像素点的颜色,白色不贴图,黑色贴图。
2、工具
- 语言:python3.11
- 编译器:PyCharm
- 包:pygame
- 包:PIL
- 字体文件:simkai.ttf(本地有自带的字体文件,自行选择)
- 女神图片:
3、代码
-
import pygame # 字体处理功能
from PIL import Image # 图像处理模块
import random
import os
text = '迪丽热巴' # 照片墙文字
font_size = 30 # 字体大小
pygame.init()
# 文字初始化
font = pygame.font.Font('simkai.ttf', font_size) # 参数:文字文件,字体大小
# 字体渲染
font_test = font.render(text, True, (0, 0, 0), (255, 255, 255)) # 参数:文件,锯齿化,黑色,白色
# 获取字体的宽高
height = font_test.get_height() # 字体高度
width = font_test.get_width() # 字体宽度
# 根据像素点颜色做分类,划分为一个二维列表
image_row_list = [] # 二维列表
for x in range(height):
image_col_list = [] # 行
for y in range(width):
if font_test.get_at((y, x))[0] != 255: # 用元组的第一个元素判断颜色
image_col_list.append(1) # 黑色添加数据1
else:
image_col_list.append(0) # 白色添加数据0
image_row_list.append(image_col_list)
# 创建图片
new_image = Image.new('RGB', (width * 100, height * 100), (255, 255, 255)) # 参数:图片以像素展示,图片宽高,图片背景颜色
# 贴图
img_size = 100 # 初始图片尺寸
for x in range(height):
for y in range(width):
if image_row_list[x][y] == 1: # 如过列表的值为1, 就贴图
# 读取图片,随机读取图片
source_image = Image.open('images\\' + random.choice(os.listdir(r'images')))
# 修改图片的大小
source_image = source_image.resize((img_size, img_size), Image.LANCZOS)
# 将图片复制到new_image
new_image.paste(source_image, (y * img_size, x * img_size))
# 照片强保存
print('正在生成照片墙...')
new_image.save(text + '.png')
print('生成完毕')
4、运行结果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1319884.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!