哈喽。大家好,我是恰恰~今天教大家用Python来制作一个表白神器—照片墙,属于我们程序员的小浪漫,虽然来的晚,但是收藏学会了,以后都用的到哦~
看一下效果图:
要什么样的,图案都可以自定义的
在这里插入图片描述
在这里插入图片描述
首先,准备阶段
收集你喜欢人(或者你)的照片,多多益善!
然后需要用到的环境
python 3.6
pycharm
pygame
PIL
random
os
接下来,写代码
分为两部分
1.字体形状
importpygame#游戏模块,字体功能,第三方模块pipinstallpygametext='祝你成功!'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=[]forxinrange(height):image_col_list=[]#foryinrange(width):iffont_text.get_at((y,x))[0]!=255:#如果像素点不是白色image_col_list.append(1)#黑色添加数据1else:image_col_list.append(0)#白色添加数据0image_row_list.append(image_col_list)forrowinimage_row_list:print(row)
2.按照字体形状去贴你准备好的图片
fromPILimportImage#图像处理模块,pipinstallpillowimportos#目录操作,内置importrandom#随机数模块,随机取一张图片#贴图照片墙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#初始图片尺寸forrowinrange(height_len):forcloinrange(width_len):ifimage_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_imagenew_image.paste(source_image,(clo*img_size,row*img_size))#照片强保存print('正在生成照片墙...')new_image.save(text+'.png')print('保存完毕,请在当前文件项目下查找')
效果图:
在这里插入图片描述
这样就大功告成了!
是不是很简单呢,圣诞节的祝福,虽迟但到,祝大家圣诞快乐,不止圣诞
欢迎大家点赞,收藏,评论!分享给需要的小伙伴哦~