PIL 图像字符画绘制

from PIL import Image

ascii_char = list('"$%_&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-/+@<>i!;:,^`.')

def get_char(r,g,b,alpha = 256):
    if alpha == 0:
        return ' '
    gray = int(0.2126*r+0.715*g+0.0722*b)
    unit = 256/len(ascii_char)
    return ascii_char[int(gray//unit)]


def main():
    file = input()
    im = Image.open(file)

    assert isinstance(im, Image.Image)

    W,H = 100,60
    im = im.resize((W,H))

    txt = ""
    fo = open("pic_char.txt","w")

    for i in range(H):
        txt=""
        for j in range(W):
            r,g,b = im.getpixel((j,i))
            txt += get_char(r,g,b)
        txt+='
'
        fo.write(txt)
    fo.close()
main()

PIL第三方类库,无代码提示

assert isinstance(im, Image.Image)

原文地址:https://www.cnblogs.com/TreeDream/p/9831197.html