怎么用Python为老师送上节日的祝福
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,今天小编给大家分享一下怎么用Python为老师送上节日的祝福的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面
千家信息网最后更新 2025年11月09日怎么用Python为老师送上节日的祝福
今天小编给大家分享一下怎么用Python为老师送上节日的祝福的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
向日葵
向日葵的花语包括:信念、光辉、忠诚等,很适合老师,我们先画一个简单的向日葵。
实现代码如下:
turtle.setup(600, 600, 80, 80)turtle.pencolor("yellow")turtle.pensize(4)turtle.penup()turtle.fd(-150)turtle.pendown()for i in range(18): turtle.fd(300) turtle.left(100)turtle.fd(150)turtle.right(90)turtle.pensize(8)turtle.pencolor("green")turtle.fd(400)turtle.penup()turtle.pensize(6)turtle.pendown()# 绘制叶子turtle.fd(-250)turtle.seth(45)turtle.circle(-130, 60)turtle.seth(-135)turtle.circle(-130, 60)turtle.seth(135)turtle.circle(130, 60)turtle.seth(-45)turtle.circle(130, 60)turtle.done()贺卡
我们还可以利用 Python 在照片中添加一些文字来制作贺卡。
主要实现代码:
img = cv2.imread('test.png')mask = np.zeros(img.shape[:2], np.uint8)size = (1, 65)bgd = np.zeros(size, np.float64)fgd = np.zeros(size, np.float64)rect = (1, 1, img.shape[1], img.shape[0])cv2.grabCut(img, mask, rect, bgd, fgd, 10, cv2.GC_INIT_WITH_RECT)mask2 = np.where((mask == 2) | (mask == 0), 1, 255)img = img.astype(np.int32)img *= mask2[:, :, np.newaxis]img[img>255] = 255img =img.astype(np.uint8)img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img = Image.fromarray(img, 'RGB')img.save('test1.jpg')fp = open(r"word.txt", "r", encoding="utf-8")text = fp.read()mask_pic=np.array(Image.open(r"test1.jpg"))wordcloud = WordCloud(font_path='hyr3gjm.ttf',mask=mask_pic,max_words=200).generate(text)image=wordcloud.to_image()image.save("wordcloud2.png")cloud_data = np.array(image)alpha = np.copy(cloud_data[:,:,0])alpha[alpha>0] = 255new_image = Image.fromarray(np.dstack((cloud_data, alpha)))card = Image.open("test.png")card = card.convert("RGBA")card.paste(new_image, (0,0), mask=new_image)card.save("card.png")照片墙
我们也可以利用 Python 将一些照片制作成文字效果的照片墙。
主要实现代码:
# 将字转化为汉字库的点阵数据def char2bit(textStr): KEYS = [0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01] target = [] global count count = 0 for x in range(len(textStr)): text = textStr[x] rect_list = [] * 16 for i in range(16): rect_list.append([] * 16) gb2312 = text.encode('gb2312') hex_str = binascii.b2a_hex(gb2312) result = str(hex_str, encoding='utf-8') area = eval('0x' + result[:2]) - 0xA0 index = eval('0x' + result[2:]) - 0xA0 offset = (94 * (area-1) + (index-1)) * 32 font_rect = None with open("HZK16", "rb") as f: f.seek(offset) font_rect = f.read(32) for k in range(len(font_rect) // 2): row_list = rect_list[k] for j in range(2): for i in range(8): asc = font_rect[k * 2 + j] flag = asc & KEYS[i] row_list.append(flag) output = [] for row in rect_list: for i in row: if i: output.append('1') count+=1 else: output.append('0') target.append(''.join(output)) return target# 生成图片文字def head2char(workspace,folder,self,outlist): # 将工作路径转移至头像文件夹 os.chdir(folder) # 获取文件夹内头像列表 imgList = os.listdir(folder) # 获取头像图片个数 numImages = len(imgList) # 设置头像裁剪后尺寸 eachSize = 100 # 变量 n 用于循环遍历头像图片 n=0 # 变量 count 用于为最终生成的单字图片编号 count = 0 # 初始化颜色列表,用于背景着色 colorlist = ['#FFFACD','#F0FFFF','#BFEFFF','#b7facd','#ffe7cc','#fbccff','#d1ffb8','#febec0','#E0EEE0'] # index 用来改变不同字的背景颜色 index = 0 # 每个 item 对应不同字的点阵信息 for item in outlist: # 将工作路径转到头像所在文件夹 os.chdir(folder) # 新建一个带有背景色的画布,16 * 16点阵,每个点处填充 2 * 2 张头像图片,故长为 16 * 2 * 100 canvas = Image.new('RGB', (3200, 3200), colorlist[index]) # 新建一块画布 # index 变换,用于变换背景颜色 index = (index+1)%9 count += 1 # 每个 16 * 16 点阵中的点,用四张 100 * 100 的头像来填充 for i in range(16*16): # 点阵信息为 1,即代表此处要显示头像来组字 if item[i] == "1": # 循环读取连续的四张头像图片 x1 = n % len(imgList) x2 = (n+1) % len(imgList) x3 = (n+2) % len(imgList) x4 = (n+3) % len(imgList) # 以下四组 try,将读取到的四张头像填充到画板上对应的一个点位置 # 点阵处左上角图片 1/4 try: # 打开图片 img = Image.open(imgList[x1]) except IOError: print("有1张图片读取失败,已使用备用图像替代") img = Image.open(self) finally: # 缩小图片 img = img.resize((eachSize, eachSize), Image.ANTIALIAS) # 拼接图片 canvas.paste(img, ((i % 16) * 2 * eachSize, (i // 16) * 2 * eachSize)) # 点阵处右上角图片 2/4 try: img = Image.open(imgList[x2]) except IOError: print("有1张图片读取失败,已使用备用图像替代") img = Image.open(self) finally: img = img.resize((eachSize, eachSize), Image.ANTIALIAS) canvas.paste(img, (((i % 16) * 2 + 1) * eachSize, (i // 16) * 2 * eachSize)) # 点阵处左下角图片 3/4 try: img = Image.open(imgList[x3]) except IOError: print("有1张图片读取失败,已使用备用图像替代") img = Image.open(self) finally: img = img.resize((eachSize, eachSize), Image.ANTIALIAS) canvas.paste(img, ((i % 16) * 2 * eachSize, ((i // 16) * 2 + 1 ) * eachSize)) # 点阵处右下角图片 4/4 try: img = Image.open(imgList[x4]) except IOError: print("有1张图片读取失败,已使用备用图像替代") img = Image.open(self) finally: img = img.resize((eachSize, eachSize), Image.ANTIALIAS) canvas.paste(img, (((i % 16) * 2 + 1) * eachSize, ((i // 16) * 2 + 1) * eachSize)) #调整 n 以读取后续图片 n= (n+4) % len(imgList) os.chdir(workspace) # 创建文件夹用于存储输出结果 if not os.path.exists('output'): os.mkdir('output') os.chdir('output') # 存储将拼接后的图片,quality 为图片质量,1 - 100,100 最高 canvas.save('result%d.jpg'% count, quality=100)以上就是"怎么用Python为老师送上节日的祝福"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
图片
头像
点阵
图像
文件
文件夹
照片
知识
篇文章
背景
备用
老师
不同
代码
向日葵
颜色
节日
祝福
信息
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
沈阳领航网络技术有限公司
虚拟破解服务器怎么用
职中数据库考试题
服务器主板可以直接插宽带吗
超级人类右上角服务器哪个是亚服
广西和飞网络技术有限公司
网络安全开发包详解txt
服务器数据怎么备份
列举三个常用数据库
网络安全和道德报告
电脑用服务器还是用硬盘
腾讯云服务器视频如何下载
AB上位机软件开发
网络安全意识赛
嵌入式软件用什么软件开发
网络安全的主要方面是什么
安阳服务器机箱价格
浪潮服务器插槽查看
网络安全与高校学生
第五届强网杯网络安全大赛直播
移动网络安全管控平台
网络安全攻击分排行榜
金蝶kis迷你版的加密服务器
中关村公众号软件开发公司
应届软件开发项目经验怎么写
夜袭下载软件开发
制作产品数据库
软件开发工程师
腾讯数据库基地广东
东城区大型软件开发特点