把圖片轉(zhuǎn)換為字符顯示的python小程序

先上圖:

李白哥哥...

讓后下面貼上代碼....

 # 1, 導入Image類
from PIL import Image


# 根據(jù)像素點的顏色值獲取字符的函數(shù)
def get_chars(pi):
    # 用字符去替換像素點的顏色值
    for k in range(0, 8):
        if pi < (k + 1) * 32:
            return chars[7 - k]

# 保存文件的函數(shù)
def save(image_name, data):
    f = open(image_name + '.txt', 'w')

    for d in data:
        print(d, file=f)

    f.close()

# 加了這個如果是需要import這個類的話, 會直接調(diào)用這段代碼...
if __name__ == '__main__':

    # 2, 使用Image的對象讀取圖片
    image_name = '/Users/baiya/Desktop/timg.jpeg'
    img = Image.open(image_name)
    # 3, 將圖片轉(zhuǎn)換為灰度圖像
    img = img.convert('L')
    # 4, 獲取圖片大小,并根據(jù)實際需要縮小圖片
    w, h = img.size
    # 如果圖片太大, 將高和寬做一個等比例的縮放
    if w > 100:
        h = int((100/w) * h/2)
        w = 100
    # 防止圖片縮放的時候質(zhì)量下降
    img = img.resize((w, h), Image.ANTIALIAS)
    # 5, 將縮小的圖片像素點的顏色值轉(zhuǎn)化為字符并存放到列表
    # 保存像素字符的列表
    data = []
    # 替換字符的列表(從左到右顏色是逐漸加深)
    chars = [' ', ',', '1', '+', 'n', 'D', '@', 'M']

    # 根據(jù)圖片的寬度和高度便利像素點并取出每個像素點的顏色值
    for i in range(0, h):
        line = ''
        for j in range(0, w):
            # 取出像素點的值
            pi = img.getpixel((j,i))
            # 用字符去替換像素點的顏色值
            for k in range(0, 8):
                if pi < (k+1) * 32:
                    line += get_chars(pi)
                    break

        data.append(line)

    # 6, 將保存的字符列表寫入到文件中
    save(image_name, data)


    print('轉(zhuǎn)換成功!')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容