字符画生成网页

0 Comments

绿叶转字符画

绿叶转字符画

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 += "\n"
table += tr + "
" + line + "
" html = html.replace('$mytable',table) fo = open('output.html','w') fo.write(html) fo.close()

发表评论