利用Python如何实现图片转字符画?python图片转字符串的代码示例讲解

相信大家在网上经常看到有人发表出各种各样的字符画 , 对于这个五彩斑斓的世界来说 , 我们日常看到的都是一些高清的彩色的图片 , 偶尔来个粗糙的黑白的字符画 , 还是比较解乏的 。今天带大家一起学习“利用Python 如何实现图片转字符画?python图片转字符串的代码示例讲解” , 有兴趣的朋友赶紧来看看吧!

利用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字符画内容可以关注继续学习 。

    推荐阅读