字符画指的就是使用不同字符组合来形成图像样式,在这个过程之中字符本身的笔画以及字符之间的间隔就是字符画绘制的关键 。下面这篇文章就是会来详细讲解,在python中该怎么将图像转为字符画形式,感兴趣和想学习的小伙伴就要仔细往下阅读了 。
文章插图
1.python中绘制字符画只需要去调用PIL第三方库之中Image模块即可,导入模块之后首先需要定义一个列表结构来保存绘制字符画时所需要的字符 。该列表中保存的字符可以根据自己的需求和喜好随意添加,代码示例如下所示:
from PIL import Imageascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")2.然后就是要去定义将图片转为灰度图,然后返回这个像素点灰度该对应哪个字符 。在函数内首先需要获取字符集列表长度,然后使用计算表达式得出图像灰度值,再用255除以列表长度即可得到灰度值可以映射的字符数值 。之后就是用灰度值除以该映射值从而得到这个像素点所对应的字符是什么,它需要用切片方式写在字符集中括号内,代码如下:
【Python怎么绘制字符画?Python图像转字符画详解教程】def get_char(r, g, b, alpha=256): if alpha == 0: return ' ' length = len(ascii_char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (255.0 + 1) / length return ascii_char[int(gray / unit)]3.最后要做的事情就是在if等于main的条件判断语句块之中先将图片导入进来,然后修改它的高度和宽度 。再使用嵌套for循环遍历该图像的每一个像素点并获取颜色,之后通过该值调用get_char()函数取出对应的字符,之后将这些字符添加到变量中输出即可,详细代码如下所示:
if __name__ == '__main__': im = Image.open('IMG.jpg') im = im.resize((150,80), Image.NEAREST) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j, i))) txt += '\n' print(txt) with open(’t.txt’, 'w') as f: f.write(txt)以上就是关于“Python怎么绘制字符画?Python图像转字符画详解教程”的全部内容了,希望对你有所帮助 。
推荐阅读
- 红枣冬菇汤怎么做 红枣冬菇汤如何做
- Matplotlib绘制折线图用什么方法?Python第三方库matplotlib怎么画折线图
- Python怎么绘制火山图?Python画火山散点图代码是什么
- Python怎么使用pywebview开发桌面程序?Pywebview如何编写桌面应用
- Python类属性和方法怎么使用?Python类属性如何访问
- Python内置模块zipfile有哪些方法?Python模块zipfile有哪些常用方法属性
- Python列表中append函数使用方法 详解Python列表中的append()函数
- Python如何截取字符函数?Python截取字符函数是什么?
- 如何掌握python中class函数用法?python中class函数的基本使用方法
- 数码知识:opporeno5pro防抖怎么开有没有防抖