怎么用Python为老师送上节日的祝福
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,今天小编给大家分享一下怎么用Python为老师送上节日的祝福的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面
千家信息网最后更新 2025年01月18日怎么用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安全错误
数据库的锁怎样保障安全
我蚌埠软件开发的企业
纸鸢绘画软件开发
台州市网络安全学校
上海政务服务管理软件开发
搜索2021年国家网络安全
mc1.87服务器
如何入账软件开发费用
广州商城软件开发需要多少钱
网络安全模式启动慢
怎么用命令行启动数据库
数据库数据转换js
mysql数据库的长度设置
7天过三级数据库技术
题录型数据库典型类型
数据库中两个字段相加的函数
融业网络技术
网络安全大屏通知
简单自动化软件开发
云桌面服务器个人信息会保留多久
银座集团软件开发
浙江软件开发报价
怎么查网站服务器ip
机架服务器怎么上显卡
微晟互联网科技有限公司地址
梅州足疗店线上点餐软件开发
邮箱服务器配置是干什么用
软件开发增值税即征即退
贵阳网络安全培训称性老师
鸿蒙 设置代理服务器
宁畅R620 G30服务器