Python转图片为字符图如何实现?Python怎么将图片转为字符形式

python图片转字符串图的意思就是将一个图片以字符的形式表现出来,也就是写很多行字符,而其中一些字符就按照图片颜色来进行改变这样凸显出原图的形状 。下面会以详细代码示例来讲解一下python图片转为字符串的方法,一起和小编往下看看吧 。

Python转图片为字符图如何实现?Python怎么将图片转为字符形式

文章插图
1.首先需要导入pillow第三方库中的Image模块,该模块能够用来对图片执行读取和其他操作 。模块导入之后将一个字符串转为列表形式,该字符串中放的就是一些英文字母和符号来作为图片形成的字符,代码如下所示:
from PIL import Imageascii_char=list('~!@#.,[abcdefghij]wmnoxy$%;-=<>?:|^&*/ ')2.第二步定义一个函数,该函数需要去接受图片的RGB三色彩值以及透明度alpha
值 。在函数内需要先判断一下alpha是否为0,为0就表示图片完全透明直接返回空字符串就行 。
不为0就通过int()函数使用rgb色彩值计算来得到会灰度值,然后调用256除以字符列表长度得到每个像素点所需的字符 。再用灰度值除以字符数量就可以得到每个像素点所需的字符,返回其即可,详细代码如下所示:
def get_char(r,b,g,alpha=256):    if alpha==0:        return ' '    gray=int(0.2126*r+0.7125*g+0.0722*b)    uint=256/len(ascii_char)      return ascii_char[int(gray/uint)]3.第三步也是要去定义一个函数,该函数不需要接收参数 。在函数内部用open()方法读取图片并将其分辨率设置为指定值,然后定义一个空字符串对象 。用两层for循环分别去迭代图片长度和宽度生成的数组,在迭代之中根据getpixel取到图像该像素点的颜色来判断这个位置写入哪个字符并添加到字符串变量中 。最后只需要写入文件并print()输出即可,详细代码如下所示:
def run():    img=Image.open('0.jpg')    WIDTH,HEIGHT=100,60    img=img.resize((WIDTH,HEIGHT))    txt=""    for i in range(HEIGHT):        for j in range(WIDTH):            txt+=get_char(*img.getpixel((j,i)))        txt+=''    with open("pic.txt",'w') as fo:        fo.write(txt)    print(txt)    run()【Python转图片为字符图如何实现?Python怎么将图片转为字符形式】以上就是关于“Python转图片为字符图如何实现?Python怎么将图片转为字符形式”的全部内容了,希望对你有所帮助 。

    推荐阅读