不到20行代碼,獲得初音的字符畫

本代碼的詳解及演示視頻:
[玩py]兩分鐘獲得初音小姐姐的字符畫
from PIL import Image
chars = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
#不同灰度對應(yīng)不同的字符,此list為灰度與字符的映射
length = len(chars)
imgFile = open(u'./111.png','rb') #打開圖片文件
img = Image.open(imgFile) #獲得圖片
img = img.resize((200,200)) #調(diào)整圖片大小
imgFile.close() #將剛剛打開的文件關(guān)掉,因?yàn)橐呀?jīng)拿到圖片了嘛
img = img.convert("L") #將圖片轉(zhuǎn)換為黑白圖片
outChars = ''
#一行一行地,一個像素點(diǎn)一個像素點(diǎn)地獲取灰度對應(yīng)的字符
for y in range(0,img.size[1]): #size屬性表示圖片的分辨率,'0'為橫向大小,'1'為縱向
for x in range(0,img.size[0]):
gray = img.getpixel((x,y))
#返回指定位置的像素
outChars = outChars + chars[int(((length-1)*gray)/256)]
#建立灰度與字符集的映射
outChars = outChars+'\r\n' #一行結(jié)束,換行
#打開(創(chuàng)建)一個文件,將字符畫寫入其中
outFile = open('out.txt','w')
outFile.write(outChars)
outFile.close()