02-图片转字符画

from PIL import Image  
  
IMG='E:旅游图片图片素材\210136.png'  
 
WIDTH=100 
HEIGHT=90
  
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ")  
  
#将256灰度映射到70个字符上  
def get_char(r,g,b,alpha=256):#alpha透明度  
    length=len(ascii_char)  
    gray=int(0.2126*r+0.7152*g+0.0722*b)#计算灰度  
    unit=(256.0+1)/length
    if gray == 0:
        return ' '  
    else:
        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+='
'  
  
    print (txt)  
    #写入文件
    with open("output.txt",'w') as f:  
        f.write(txt) 

  

原文地址:https://www.cnblogs.com/taysem/p/12013628.html