当前位置:   article > 正文

Python项目——表白照片墙

Python项目——表白照片墙

1、介绍

  • 利用女神的照片,组成女神的名字,向女神表白。如下图:
  • 原理:获取每个像素点的颜色,白色不贴图,黑色贴图。
2、工具
  • 语言:python3.11
  • 编译器:PyCharm
  • 包:pygame
    • pip install pygame
  • 包:PIL
    • pip install pillow
  • 字体文件:simkai.ttf(本地有自带的字体文件,自行选择) 
  • 女神图片:

3、代码

    1. import pygame # 字体处理功能
    2. from PIL import Image # 图像处理模块
    3. import random
    4. import os
    5. text = '迪丽热巴' # 照片墙文字
    6. font_size = 30 # 字体大小
    7. pygame.init()
    8. # 文字初始化
    9. font = pygame.font.Font('simkai.ttf', font_size) # 参数:文字文件,字体大小
    10. # 字体渲染
    11. font_test = font.render(text, True, (0, 0, 0), (255, 255, 255)) # 参数:文件,锯齿化,黑色,白色
    12. # 获取字体的宽高
    13. height = font_test.get_height() # 字体高度
    14. width = font_test.get_width() # 字体宽度
    15. # 根据像素点颜色做分类,划分为一个二维列表
    16. image_row_list = [] # 二维列表
    17. for x in range(height):
    18. image_col_list = [] # 行
    19. for y in range(width):
    20. if font_test.get_at((y, x))[0] != 255: # 用元组的第一个元素判断颜色
    21. image_col_list.append(1) # 黑色添加数据1
    22. else:
    23. image_col_list.append(0) # 白色添加数据0
    24. image_row_list.append(image_col_list)
    25. # 创建图片
    26. new_image = Image.new('RGB', (width * 100, height * 100), (255, 255, 255)) # 参数:图片以像素展示,图片宽高,图片背景颜色
    27. # 贴图
    28. img_size = 100 # 初始图片尺寸
    29. for x in range(height):
    30. for y in range(width):
    31. if image_row_list[x][y] == 1: # 如过列表的值为1, 就贴图
    32. # 读取图片,随机读取图片
    33. source_image = Image.open('images\\' + random.choice(os.listdir(r'images')))
    34. # 修改图片的大小
    35. source_image = source_image.resize((img_size, img_size), Image.LANCZOS)
    36. # 将图片复制到new_image
    37. new_image.paste(source_image, (y * img_size, x * img_size))
    38. # 照片强保存
    39. print('正在生成照片墙...')
    40. new_image.save(text + '.png')
    41. print('生成完毕')

4、运行结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/632381
推荐阅读
相关标签
  

闽ICP备14008679号