亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何用Python將圖片轉(zhuǎn)為字符畫

 更新時間:2023年03月24日 15:19:15   作者:GSGundam  
本文主要介紹了用Python將圖片轉(zhuǎn)為黑白字符畫的方法,使用ascii字符把圖片轉(zhuǎn)為黑白字符畫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

今天打算玩?zhèn)€好玩的,也是基于一個優(yōu)秀的圖像處理庫——PIL,使用ascii字符把圖片轉(zhuǎn)為黑白字符畫。

首先有個問題,就是模擬灰度,這里有個公式:

1
Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B

這樣就好辦了。當然,RGB模式下,256x256x256的顏色范圍雖然被轉(zhuǎn)換成了256的灰度范圍,字符還是不好一一對應。我們可以使用一個字符對應多個灰度的方式來解決。

記得要先安裝PIL庫,其中:

如果是Python 2,運行 pip install PIL

如果是Python 3,運行 pip install pillow。

接下來直接上代碼吧:

from PIL import Image
#設置顯示的字符集
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")    
WIDTH = 130
HEIGHT = 50
def get_char(r,g,b,alpha = 256):
    if alpha == 0:
        return ' '
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
    unit = (255.0 + 1)/length
    return ascii_char[int(gray/unit)]
if __name__ == '__main__':
    img = "E:/WindowsDocuments/G7/Desktop/1.png"
    im = Image.open(img)
    im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
    txt = ""
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i)))
        txt += '\n'
     print(txt)

如果想要輸出到文件,可以在定義的部分,加上想要保存的文件名 OUTPUT = 'output.txt',然后在最后寫進去:

with open(OUTPUT, 'w') as f:
    f.write(txt)

最后,我們得到了這個:

到此這篇關于如何用Python將圖片轉(zhuǎn)為字符畫的文章就介紹到這了,更多相關用Python將圖片轉(zhuǎn)為字符畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論