
from PIL import Image # PIL 是一个 Python 图像处理库
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
# 是我们的字符画所使用的字符集,一共有 70 个字符,字符的种类与数量可以自己根据字符画的效果反复调试的
WIDTH = 50 # 字符画的宽
HEIGHT =45 # 字符画的高
#
def get_char(r, g, b, alpha=256):
"""
将256灰度映射到70个字符上,也就是RGB值转字符的函数:
"""
if alpha == 0:
return ' '
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) # 计算灰度
unit = (256.0) / length
return ascii_char[int(gray / unit)] # 不同的灰度对应着不同的字符
im = Image.open('1.png')
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'
print(txt) # 打印出字符画
# 将字符画 写入网页文件中
html = """字符画
$mytable
"""
table = '''
'''
tr = ''
for line in txt.split("\n"):
line = line.replace(' ',' ')
tr += "| " + line + " |
\n"
table += tr + "
"
html = html.replace('$mytable',table)
fo = open('output.html','w')
fo.write(html)
fo.close()