猫史档案馆


【python】把图片变成ascii(只支持png和jpg)

用户:AK亨利佐加DanJamesThomasAK亨利佐加DanJamesThomas查看:0 回复:0 评论:0 创建时间:2023-01-03T19:55:06


先上代码:

from PIL import Image
IMG=input('enter:')
WIDTH=150
HEIGHT=80
OUTPUT=input('enter out:')
ascii_char=list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`.")
def get_char(r,g,b,alpha=256):
    if alpha==0:
        return ' '
    length=len(ascii_char)
    gray=int(0.2126*r+0.7152*g+0.0722*b)

    unit=(255.0+1)/length
    return ascii_char[int(gray/unit)]
if __name__=='__main__':
    im=Image.open(IMG)
    im=im.resize((WIDTH,HEIGHT),Image.NEAREST)
    txt=""
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt+=get_char(*im.getpixel((j,i)))
        txt+='\n'
    print(txt)
    with open(OUTPUT,'w') as f:
        f.write(txt)

用python正版3.X的运行

我的是3.9

要不然会报错,因为ascii码不能识别($@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`.),因为里面喵

好了,看看效果:

这是原图:

center_image

记住,把图片放在python3X这个文件下(我的是python39)

前面让你enter:

你输入位置(如果是在同一文件夹下的话,你把这个图片的名字+格式打出就可以了)例如:

enter: 你太菜.png

运行结果:

center_image

只是一部分……


回复

上一页1 页 / 共 0下一页