Python图片转字符画

昨天看到一篇推文 > 情人节来了,教你个用 Python 表白的技巧

用兴趣为突破口驱动学习

  1. 掌握RGB图像转灰度图像的方法;
  2. 了解PIL库的用法。

代码示例

from PIL import Image, ImageDraw, ImageFont

font_size = 7
text = "新年快乐!"
img_path = "C://Users//lwq//Desktop//py//680.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('C:/Windows/fonts/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("C://Users//lwq//Desktop//py//save.jpg")

680.jpg
图片说明
save.jpg

图片说明

安装PIL遇到的问题

图片说明

原因是:电脑是64位的,而官网只提供32位的,就是自己去官网下载的其他PIL,也是32位的。

解决方法:

1.查找其他文章发现了一个可行的解决方法:https://blog.csdn.net/yushuangping/article/details/82963839
2.pillow包含了PIL,所以可以直接安装pillow