Python 手把手教你将图片变成字符画

face.png 就是你需要转换的图片

Pillow模块是Python中用于处理图片的模块,
由于它是第三方模块,所以在使用前,我们需要先来安装Pillow模块,安装命令如下:

pip install pillow

在pillow模块中,最常用的就是Image类。

接下来,介绍一下Image类的几种常用方法:
 打开图片
可以使用Image类的open()方法打开一张图片代码如下:

from PIL import Image

 操作图片
通过Image对象的实例属性,获取图片的相应属性,并操作图片。

01	# 获得图像尺寸:
02	w, h = im.size
03	print(f'图片的尺寸是:{w,h}')
04	# 缩放图片
05	im.thumbnail((w//2, h//2))
06	print(f'缩放后的图片尺寸是:{w//2,h//2}')
07	# 把缩放后的图像用jpeg格式保存:
08	im.save('test.png')

运行结果如下:
图片的尺寸是:(652, 560)
缩放后的图片尺寸是:(326, 280)
说明:face.png图片与程序文件在同一路径下。

from PIL import Image

def get_char(r,g,b,a=256):
    if a == 0:
        return ' '
    gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
    length = len(ascii_str)
    unit = 256/length
    return ascii_str[int(gray/unit)]


if __name__ == "__main__":
    WIDTH = 80
    HEIGHT = 40
    ascii_str = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
    im = Image.open('face.png')
    im = im.resize((WIDTH,HEIGHT))
    txt = ''
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i))) # (r,g,b,a)
        txt += '\n'

    print(txt)

猜你喜欢

转载自blog.csdn.net/Yuyu920716/article/details/114177510