La imagen de un personaje dibujado con
El segundo blog, un registro diario de aprender poco a poco.
resumen conocimiento
- bibliotecas de procesamiento de imágenes de terceros Python PIL
- valor de gris ecuación
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
señal de mapeo pequeño símbolo con el valor de gris local en el principio de la lista, con un gran valor de gris del extremo local de la lista de mapas. - getPixel ((j, i)) para dar el color de un píxel, típicamente de retorno (r, g, b)
from PIL import Image
ascii_char = list ('"$%_&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-/+@<>i!;:,\^`.')
def get_char(r, b, g, alpha = 256):
if alpha == 0:
return ' '
#计算每个像素点应该放入列表中哪个字符
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unit = 256 / len(ascii_char)
return ascii_char[int(gray / unit)]
def main():
im = Image.open('boy.jpg')
WIDTH , HEIGHT = 90,34
im = im.resize((WIDTH,HEIGHT))
#初试化文本
txt = ""
for i in range (HEIGHT):
for j in range(WIDTH):
txt += get_char(*im.getpixel((j,i)))
txt += '\n' #遍历每行结束后切换到下一行
#创建文本文件,将转换的字符串图画保存进去
fo = open("pic_char.txt","w")
fo.write(txt)
fo.close()
if __name__ == '__main__':
main()