Python实现520表白墙(超详细) 送给你的另一半吧

您所在的位置:网站首页 表白墙表白男生怎么写 Python实现520表白墙(超详细) 送给你的另一半吧

Python实现520表白墙(超详细) 送给你的另一半吧

2024-07-17 12:45| 来源: 网络整理| 查看: 265

        每一步都超级详细,本例中我使用的是SimHei.ttf字体,如果电脑文件中无该字体可以换为别的字体或者自行下载。请将字体文件和该程序放在同一目录下,该目录下应该还要有images文件夹,该文件夹存放.jpg格式的照片,直接运行该代码,就会生成一张一个图片名为520.jpg的图片,该图片就是照片墙。

注:字体样式、字体大小和字体颜色、背景颜色还有字体宽度、字体高度都可自行调整。

''' 1. 照片墙的字体摆放 2. 如何把图片贴到照片墙上(根据字体的形状) ''' import pygame # 第三方模块 做小游戏 组件模块要记忆(查看官方文档) 字体文件组件 size = 50 # 字体大小 text = '520' # 字体形状,后续可以修改成名字 pygame.init() # 初始化模块 # 'SimHei.ttf' 字体文件 # size 字体的大小 font = pygame.font.Font('SimHei.ttf', size) # 定义字体SimHei.ttf (对象) print(font) # 渲染字体 # text字体形状 # True 默认锯齿 # (0, 0, 0)字体颜色 # (255, 255, 255)背景颜色 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((0, 0))[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) print(image_row_list) for row in image_row_list: print(row ) """根据矩阵贴图片""" # 获取二维列表的高度和宽度 width_list = len(image_row_list[0]) height_list = len(image_row_list) from PIL import Image # 导入图像处理模块 第三方模块 import os # 文件操作模块 import random # 贴图必须要有一个画布 new_image = Image.new('RGB', (width * 100, height * 100), (255, 255, 255)) # 设置每个图片缩放的尺寸 size = 100 for row in range(height_list): for col in range(width_list): if image_row_list[row][col] == 1: # 如果是1 贴图 # 随选择一张图片(路径) 用图像模块打开 source_image = Image.open('images\\' + random.choice(os.listdir('images'))) # 随选择一张图片(路径) 用图像模块打开 source_image = source_image.resize((size, size), Image.ANTIALIAS) # 使用抗锯齿 new_image.paste(source_image, (col * size, row * size)) print('正在生成照片墙...') new_image.save(text + '.jpg') print('生成完毕...')



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3