python给图片加满文字
发布日期:2021-09-14 23:18:07
浏览次数:4
分类:技术文章
本文共 1100 字,大约阅读时间需要 3 分钟。
from PIL import Image, ImageDraw, ImageFontfont_size = 7text = "自定义文字"img_path = "input.jpg"# 首先,使用 pillow.Image读取图像,并使用load函数获取到每一个像素值。img_raw = Image.open(img_path)img_array = img_raw.load()# 然后新建一张画布,并选好你要使用的字体和字体大小。img_new = Image.new("RGB", img_raw.size, (0, 0, 0))draw = ImageDraw.Draw(img_new)font = ImageFont.truetype('Dengl.ttf', font_size)# 由于需要不断循环 “自定义文字”,这五个字符。所以这里可以while循环 yield 来实现一个生成器。def character_generator(text): while True: for i in range(len(text)): yield text[i]ch_gen = character_generator(text)# 最后,要给这些字加上相应的颜色,写入新创建的画布中。for y in range(0, img_raw.size[1], font_size): for x in range(0, img_raw.size[0], font_size): draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)# 最后将成品保存img_new.convert('RGB').save("save.jpeg")
原理就是
事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255。比如(0,0,0)代表白色,(255,255,255)代表黑色。
当像素点足够多的时候,这张照片就是我们所说的高清照片。
而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。
用 Excel 画了个图,每一方格代表一个像素,其中若我的字体的大小设置 5(非字号5,而是每个字占用5个像素)。
我只要每个像素取出一个像素值,并使用这个像素做为该字的颜色即可,在像素量够多的情况下,从远处看,是能看到我们原来图像的轮廓的。
转载地址:https://blog.csdn.net/weixin_43451928/article/details/117259018 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月18日 18时52分49秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
FTP文件管理项目(本地云)项目日报(四)
2019-04-27
【C++】勉强能看的线程池详解
2019-04-27
FTP文件管理项目(本地云)项目日报(七)
2019-04-27
FTP文件管理项目(本地云)项目日报(八)
2019-04-27
【Linux】血泪教训 -- 动态链接库配置方法
2019-04-27
FTP文件管理项目(本地云)项目日报(九)
2019-04-27
以练代学设计模式 -- FTP文件管理项目
2019-04-27
FTP文件管理项目(本地云)项目日报(十)
2019-04-27
学以致用设计模式 之 “组合模式”
2019-04-27
我用过的设计模式(7)--享元模式
2019-04-27
MySQL数据库从入门到实战应用(学习笔记一)
2019-04-27
MySQL数据库从入门到实战应用(学习笔记二)
2019-04-27
种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林
2019-04-27
【C++】攻克哈希表(unordered_map)
2019-04-27
转:【答学员问】- 该如何根据岗位学习相关技能
2019-04-27
转:【答学员问】有什么经验教训,是你在面试很多次之后才知道的?
2019-04-27
消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ?
2019-04-27
【奇技淫巧】-- 三角形最小路径和
2019-04-27
【小技巧】argc和argv的用法
2019-04-27
学不下去了怎么办?
2019-04-27