python实现图片转灰度字符画

最初是在实验楼看到的一个小实验

实验楼-Python 图片转字符画,其实没有那么麻烦,只要自己装了python, 自己电脑就可以做了

运行平台;win10  python3.7

python实现图片转灰度字符画

pillow库的安装(python里处理图片的库),pillow也是 英文单词 枕头 的意思

pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。

pip install pillow

python实现图片转灰度字符画

最终显示的是黑白色的字符画,那么彩色的图片怎么转换成黑白的呢?这里就需要了解灰度值的概念

灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像

#-*- coding:utf-8 -*-  
from PIL import Image  
  
IMG='C:\\Users\\wdg\\Desktop\\pic.png'  
 
WIDTH= 60 
HEIGHT=45
  
ascii_char = list("123456789abcd* ")  
  
#将256灰度映射到字符上  
def get_char(r,g,b,alpha=256):#alpha透明度  
    if alpha==0:  
        return ' '  
    length=len(ascii_char)  
    gray=int(0.2126*r+0.7152*g+0.0722*b)#计算灰度  
    unit=(256.0)/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.txt",'w') as f:  
        f.write(txt) 

 运行结果:

python实现图片转灰度字符画

python实现图片转灰度字符画

参考链接