利用Python的pillow库,将png图片像素的灰度(0~256)映射到70个字符上(或其他数目),灰度gray可由公式 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)得到。新手记得下载pillow库
代码如下:
from PIL import Image
ascii_char = list("&%$#@QWERTYUIOPASDFGHJKLZXCVBN*^qwerty!}{[]\/?:();<>+~_',. ")
WIDTH = 120
HEIGHT = 60
def get_char(r, g, b, alpha=256):
if alpha == 0:
return " "
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
return ascii_char[int(gray/(257.0/length))]
if __name__ == '__main__':
img = "E:\python\String_Pic\doge.png"
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("E:\python\String_Pic\pic2.txt", "w") as f:
f.write(txt)