說下思路吧:
原圖->灰度->根據像素亮度-映射到指定的字符序列中->輸出。
字符越多,字符變化稠密。效果會更好。
如果根據灰度圖的像素亮度範圍制作字符畫,效果會更好。
如果再使用調色板,對字符進行改色,就更像原圖了。
這是原圖:
這是生成的字符畫:
廢話不多說,直接上代碼:
復制代碼 代碼如下:
import Image
chars =" ...',;:clodxkLO0DGEKNWMM"
fn=r'c:\users\liabc\desktop\jianbing.png'
f1=lambda
F:''.join([(k%100!=0) and m or m+'\n' for k,m in enumerate(apply(lambda
x:[chars[x[j,i]%len(chars)] for i in xrange(70) for j in
xrange(100)],(Image.open(F).resize((100,70)).convert("L").load(),)),1)])
f=open(r"c:\users\liabc\desktop\aface.txt","w")
f.write(f1(fn))
f.close()