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)