点击查看代码
from PIL import Image
# 定义字符集合
ascii_char = list("$@B%8&W#*oahkbdpqwmZO0QLCJYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
def get_char(r, g, b, alpha=256):
if alpha == 0:
return ' '
gray = int(0.2126*r + 0.7152*g + 0.0722*b)
return ascii_char[int(gray/256*len(ascii_char))]
def main():
im = Image.open("3672671-20250723204638482-1766115385.png")
# 设置字符画的尺寸
w, h = 100, 45
# 对图片进行缩放
im = im.resize((w, h), Image.NEAREST)
txt = ""
for i in range(h):
for j in range(w):
# 获取像素值,并将 RGB 值转换为相应的字符
txt += get_char(*im.getpixel((j, i)))
# 换行
txt += '\n'
# 将字符画写入到一个文本文件中
with open('output.text', 'w') as f:
f.write(txt)
# 判断该文件是否为主程序
if __name__ == '__main__':
main()