python制作任意形式照片墙

发布时间:2024-12-05 19:16

创意照片墙:照片框手工制作 #生活技巧# #手工DIY技巧# #创意手工项目#

用python做任意文字图片墙
今天应产品经理夫人的要求,需给其做一张“青春”图与“爱心”图。
安排!!!
直接上代码:

import pygame from PIL import Image import os import random text = input("请输入你想要的文字:") # text = '青春' font_size = 30 # 字体大小 pygame.init() # 模块的初始化 为什么 pygame不是我开发的, 我们用的别人 python语法 三原色 font = pygame.font.Font('F:\\quantu\\simsun.ttc', font_size)#需要自行下载ttc文件![在这里插入图片描述](https://img-blog.csdnimg.cn/81ce7ab747cc4d86862eccc32fb0c285.png#pic_center) 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) #心形图二维列表 map = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], ] # 贴图 照片墙 任意文字的 # width_len = len(image_row_list[0]) # 列表的宽 # height_len = len(image_row_list) # # 列表的高 #心形的 width_len = len(map[0]) # 列表的宽 height_len = len(map) # # 列表的高 # 创建图片 new_image = Image.new('RGB', (width_len * 100, height_len * 100), (255, 255, 255)) #图片背景纯色 # new_image = Image.open(r"F:\桌面\爬虫100\怕图片\src\·你算什么东西?.jpg").resize((width_len * 100, height_len * 100), Image.ANTIALIAS)#图片背景照片替换 # print(new_image.size()) # 贴图 img_size = 100 # 初始图片尺寸 # print(os.listdir(r'F:\\桌面\\爬虫100\\怕图片\\src')) for row in range(height_len): for clo in range(width_len): # if image_row_list[row][clo] == 1: # 如过列表的值为1, 就贴图 任意文字 if map[row][clo] == 0: # 如过列表的值为1, 就贴图 心形 # 读取图片 source_image = Image.open('F:\\1\\心形图素材\\' + random.choice(os.listdir(r'F:\\1\\心形图素材'))) # 修改图片的大小 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('保存完毕, 请在当前文件项目下查找')

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293

在这里插入图片描述
心形图
青春图
傻瓜图

网址:python制作任意形式照片墙 https://www.yuejiaxmz.com/news/view/386930

下一篇:html指导

相关内容

如何制作照片墙
DIY手工制作照片墙的创意技巧
自制照片墙
如何布置照片墙?四张照片墙的创意摆放方式有哪些?
在PPT中如何快速制作照片墙?
【婚房】婚纱照摆放位置要点 diy照片墙制作
使用python制作一个简单的任务管理器
照片墙排版
自制简单简洁的无框照片的相片墙 简洁时尚的相片墙╭★肉丁网
照片墙效果图及DIY照片墙的方法(2)

随便看看