Python3 使用PIL/Pillow库将图片转换为txt文字云

1. 安装PIL库或者Pillow

PIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比较大。不过只支持到Python 2.7。Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库

命令行pip安装:

pip install Pillow

在当前文件下快速打开控制台方法:

shift + 鼠标右键

2.项目代码:

from PIL import Image

# 调整转换后图片分辨率(手动调整)
WIDTH = 400
HEIGHT = 400


# 根据原图灰度大小计算转换后所用字符
def get_char(r, g, b, a=256):
    if a == 0:
        return " "
    gray = int(0.2126*r + 0.7152*g + 0.0722*b)
    unit = 257/len(char_list)
    return char_list[int(gray/unit)]


# 图片处理函数
def get_pic(path):
    img = Image.open(path)
    # 调整原图大小
    img = img.resize((WIDTH, HEIGHT), Image.NEAREST)
    # 文字云
    text = ""
    # 图片像素遍历
    for y in range(HEIGHT):
        for x in range(WIDTH):
            pixel = img.getpixel((x, y))
            text += get_char(*pixel)
        text += '\n'

    with open("out.txt", 'w') as out:
        out.write(text)
    pass


if __name__ == '__main__':
    # 字符表
    char_list = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
    get_pic("img.jpg")
    pass

原图:
原图

转换后:
转换后

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章