python字符贴图源码 附上效果图
import pygame #游戏模块 字体功能 第三方模块from PIL import Image #图像处置惩罚模块 pip install pillowimportos#目次 内置importrandom #随机数模块 ,随机取一张图片text = '周杰伦'#随便你写什么 字符串越多生成越慢font_size = 30 #字体大小pygame.init() #模块初始化 为什么? 不知道 别人开发的pygame模块python语法#pygame.font.Font(text,True,(0,0,0),(255,255,255)) RGB值font = pygame.font.Font('FZSTJW.TTF',font_size) #相对路径字体#print(font)#字体渲染#True 锯齿化 rgb颜色 由三原色组成 黑:0 0 0白:255 255 255font_text = font.render(text,True,(0,0,0),(255,255,255))#print(font_text)#获取字体宽高heigth = font_text.get_height()#获取字体高度width = font_text.get_width() #获取字体宽度#print('高:',heigth,'宽:',width)#高: 38 宽: 66# 根据什么逻辑贴图 像素点颜色font_text.get_at((1,1))#获取像素点颜色#print(font_text.get_at((1,1)))#根据像素点 做分类 :分别为一个二维列表image_row_list = []for x in range(heigth): image_clo_list = [] #收集像素点 for y in range(width): if font_text.get_at((y,x)) !=255: #假如像素点不是白色 image_clo_list.append(1) #黑色添加数据1 else: image_clo_list.append(0) #白色添加数据0 image_row_list.append(image_clo_list)# for row in image_row_list:# print(row) #打印二维列表# for row in image_row_list:# for clo in row:# if clo==1:# print('1',end='')# else:# print(' ',end='')# print() #打印520#贴图 照片墙width_len = len(image_row_list) #列表的宽height_len = len(image_row_list) #列表的高#创建图片new_Image = Image.new('RGB',(width_len*100,height_len*100),(255,255,255))#贴图image_size = 100 #初始图片尺寸for row in range(height_len): for clo inrange(width_len): if image_row_list== 1: #假如列表值为1 ,就贴图 # 本地读取文件 source_image = Image.open('jaychou\\' + random.choice(os.listdir(r'jaychou'))) #修改图片大小 source_image = source_image.resize((image_size,image_size),Image.ANTIALIAS) #new_Image new_Image.paste(source_image,(clo * image_size,row * image_size))# 照片保存print('正在生成')new_Image.save(text + '.jpg')print('保存完毕,请在当前文件下查找')
页:
[1]