当前位置:脚本大全 > > 正文

python转图片为字符图(Python实现图片转字符画的代码实例)

时间:2022-01-22 01:35:22类别:脚本大全

python转图片为字符图

Python实现图片转字符画的代码实例

原理

1. 计算出图片颜色对应的灰度值,计算公式如下

    gray = 0.2126 * r + 0.7152 * g + 0.0722 * b

2. 根据灰度值,从字符集中获取图片中每个像素点对应的字符

代码

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • # !/usr/bin/env python
  • # -*- coding:utf-8 -*-
  • from pil import image
  • import argparse
  • #命令行输入参数处理
  • parser = argparse.argumentparser()
  • parser.add_argument('file')   #输入文件
  • parser.add_argument('-o', '--output'#输出文件
  • parser.add_argument('--width', type = int, default = 50) #输出字符画宽
  • parser.add_argument('--height', type = int, default = 50) #输出字符画高
  • #获取参数
  • args = parser.parse_args()
  • img = args.file
  • width = args.width
  • height = args.height
  • output = args.output
  • # 字符画使用的字符集
  • ascii_char = list("$@b%8&wm#*oahkbdpqwmzo0qlcjuyxzcvunxrjft/\|()1{}[]?-_+~<>i!li;:,\"^`'. ")
  • def get_char(r,g,b,alpha = 256):
  •   """将256灰度映射到70个字符上"""
  •   if alpha == 0:
  •     return ' '
  •   length = len(ascii_char)
  •   # 计算灰度的公式
  •   gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
  •   unit = (256.0 + 1)/length
  •   index=int(gray/unit)
  •   return ascii_char[index]
  • if __name__ == '__main__':
  •   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)
  •   #字符画输出到文件
  •   if output:
  •     with open(output,'w') as f:
  •       f.write(txt)
  •   else:
  •     with open("output.txt",'w') as f:
  •       f.write(txt)z
  • 运行结果

    python转图片为字符图(Python实现图片转字符画的代码实例)

    python转图片为字符图(Python实现图片转字符画的代码实例)

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接

    原文链接:https://blog.csdn.net/topleeyap/article/details/78821081

    上一篇下一篇

    猜您喜欢

    热门推荐