圣诞要到了~教你用Python制作一个表白神器——照片墙,祝你成功

马上圣诞节,快到了!
~
又到了一年一度表白的时候了

今天教你一个程序员方式的表白!

看一下效果图:
要什么样的,图案都可以自定义的
圣诞要到了~教你用Python制作一个表白神器——照片墙,祝你成功_第1张图片
圣诞要到了~教你用Python制作一个表白神器——照片墙,祝你成功_第2张图片

首先,准备阶段

收集你喜欢人(或者你)的照片,多多益善!

然后需要用到的环境

  • python 3.6
  • pycharm
  • pygame
  • PIL
  • random
  • os

接下来,写代码

分为两部分

1.字体形状

import pygame  # 游戏模块,字体功能,  第三方模块   pip install pygame

text = '祝你成功!'
font_size = 30  # 字体大小

pygame.init()  # 模块的初始化  为什么  pygame不是我开发的, 我们用的别人  python语法  三原色
font = pygame.font.Font('msyh.ttc', font_size)
print(font)

# 字体的渲染
# True 锯齿化   rgb 颜色 由三原色组成  黑  白
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)  # 黑色添加数据1
        else:
            image_col_list.append(0)  # 白色添加数据0
    image_row_list.append(image_col_list)

for row in image_row_list:
    print(row)

2.按照字体形状去贴你准备好的图片

from PIL import Image   # 图像处理模块, pip install pillow
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:  # 如过列表的值为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
            new_image.paste(source_image, (clo * img_size, row * img_size))


# 照片强保存
print('正在生成照片墙...')
new_image.save(text + '.png')
print('保存完毕, 请在当前文件项目下查找')

效果图:
圣诞要到了~教你用Python制作一个表白神器——照片墙,祝你成功_第3张图片

这样就大功告成了!

学‘废’了嘛?

欢迎留言评论!

文章没看懂没关系,我这还有视频教程:表白墙←点击左边蓝色文字就可以跳转观看了

Python基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了

你可能感兴趣的:(python案例,python,pygame,开发语言)