功能
输入位图的路径和合适的长宽,生成一个对应的字符画文本文件。
代码
# -*- coding: utf-8 -*-
from PIL import Image
asciichar = list('█▓▒░※∷@#$□*|!-…· ') #分别对应由深到浅的字符
def getchar(r, g, b, alpha=256): #R、G、B、通道和Alpha值
if alpha == 0:
return ' '
gray = int(0.2126*r+0.7152*g+0.0722*b) #灰度转换公式
unit = 256/len(asciichar)
return asciichar[int(gray/unit)]
def main():
print("{0:-^30}".format('图片转字符画'))
im = Image.open(input("请输入文件路径:"))
width = int(input('请输入宽度:'))
height = int(input('请输入长度:'))
im = im.resize((width, height))
txt = ""
for i in range(height):
for j in range(width):
txt += getchar(*im.getpixel((j, i)))
txt += '\n'
fo = open(input("请输入文件保存路径:"), "w", encoding='utf-8')
fo.write(txt)
fo.close()
main()