赞
踩
pip install pygame
pip install pillow
- 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('生成完毕')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。