★★★★★博文创作不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧。使用代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★
首先,来讲讲原理。事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255。
比如(0,0,0)代表白色,(255,255,255)代表黑色。当像素点足够多的时候,这张照片就是我们所说的高清照片。而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。我只要每个像素取出一个像素值,并使用这个像素做为该字的颜色即可,在像素量够多的情况下,从远处看,是能看到我们原来图像的轮廓的。
图片处理前
图片处理后
使用PIL库来处理图像,并在图像上绘制线条、形状和文本。如果你想在图像上添加文本或进行其他绘图操作。Image:这是PIL库的核心模块,提供了基本的图像处理功能。你可以使用它来打开、创建、修改和保存图像。
ImageDraw:这个模块提供了绘图功能,允许你在图像上绘制线条、形状和文本。
ImageFont:这个模块提供了字体相关的功能,通常与ImageDraw模块一起使用,以便在图像上绘制带字体的文本。
# @Author : 小红牛
# 微信公众号:WdPython
from PIL import Image, ImageDraw, ImageFont
font_size = 7
text = '我爱你'
img_path = 'D:/Wdpython/爬虫/pic/2.jpeg'
# 1.使用pillow.Image读取女神图像
img_raw = Image.open(img_path)
img_array = img_raw.load()
# 2.新建一张画布,并选好你要使用的字体和字体大小
img_new = Image.new("RGB", img_raw.size, (0, 0, 0))
draw = ImageDraw.Draw(img_new)
font = ImageFont.truetype('C:/Windows/fonts/simkai.ttf', font_size)
# 3.需要不断循环 “我爱你!”,这3个字符。
def character_generator(text):
while True:
for i in range(len(text)):
yield text[i]
ch_gen = character_generator(text)
# 4.给这些字加上相应的颜色,写入新创建的画布中
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)
# 5.成品保存
img_new.convert('RGB').save('D:/Wdpython/爬虫/pic/save.jpeg')
完毕!!感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具