相信大家在网上经常看到有人发表出各种各样的字符画 , 对于这个五彩斑斓的世界来说 , 我们日常看到的都是一些高清的彩色的图片 , 偶尔来个粗糙的黑白的字符画 , 还是比较解乏的 。今天带大家一起学习“利用Python 如何实现图片转字符画?python图片转字符串的代码示例讲解” , 有兴趣的朋友赶紧来看看吧!
文章插图
【利用Python如何实现图片转字符画?python图片转字符串的代码示例讲解】首先我们需要了解的是 , 关于字符画的一些概念 , 其实字符画就是一串字符组成的图片 , 将一个字符看成是一个像素 , 只不过是放大版的 , 而每一个字符都可以表现出一种颜色 , 字符的种类越多 , 就可以表示图片的颜色越多 , 这样图片才清晰也会比较有层次感 。在实际生活中 , 我们要是对一个字符画进行绘制可能还需要有美术功底 , 但是利用python就不需要 , 只需要简单的几行代码 , 就可以对一组图片进行转化 。举个例子:
from PIL import ImageIMG = 'IMG.jpg' 设置图片文件WIDTH = 150 HEIGHT = 80 这是对图片的高宽进行调整OUTPUT = 'HH.txt' 将一个字符画存进一个文本文件中ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") 设置显示的字符集def get_char(r, g, b, alpha=256): 使用alpha来设置透明度判断 alpha 值 , 为0表示全透明 if alpha == 0: return ' '获取字符集的长度 , 这里为 60 length = len(ascii_char) 将 RGB 值转为灰度值 gray , 灰度值范围为 0-255 gray = int(0.2213 * r + 0.4563 * g + 0.2144 * b) unit = (255.0 + 1) / length 返回灰度值对应的字符 return ascii_char[int(gray / unit)]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): 将 (j,i) 坐标的 RGB 像素转为字符后添加到 txt 字符串 txt += get_char(*im.getpixel((j, i))) 遍历完一行后需要增加换行符 txt += '\n' 输出到屏幕
print(txt) with open(OUTPUT, 'w') as f: f.write(txt)到此这篇关于利用Python 如何实现图片转字符画?python图片转字符串的代码示例讲解的文章就介绍到这了,更多相关python字符画内容可以关注继续学习 。
推荐阅读
- 如何构建Python命令行参数?构建Python命令行参数的常见方式
- Python中的ruduce函数和filter函数有什么区别?Python filter及reduce()函数使用方法解析
- Python如何知道文件是否存在?Python中两种判断文件是否存在的方法
- Python怎么保留整数?Python数学计算如何只留整数结果
- Python安装时可以直接建立虚拟环境吗?Python安装及建立虚拟环境的完整步骤
- python中的等于与is的区别是什么?python中的等于与is有什么区别?
- Python3中常用的装饰器有哪些?python3最常用的装饰器语法
- 搜狗浏览器保存的密码和用户名如何查看?搜狗浏览器保存的密码和用户名查看的方法
- 搜狗浏览器中如何删除自带工具?搜狗浏览器删除自带工具的方法步骤
- 搜狗浏览器如何设置兼容模式?搜狗浏览器设置兼容模式的操作步骤