如何用Python將圖片轉(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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
flask實現(xiàn)python方法轉(zhuǎn)換服務的方法
flask是一個web框架,可以通過提供的裝飾器@server.route()將普通函數(shù)轉(zhuǎn)換為服務,這篇文章主要介紹了flask實現(xiàn)python方法轉(zhuǎn)換服務,需要的朋友可以參考下2022-05-05Python實現(xiàn)帶參數(shù)的用戶驗證功能裝飾器示例
這篇文章主要介紹了Python實現(xiàn)帶參數(shù)的用戶驗證功能裝飾器,結(jié)合實例形式分析了Python用戶驗證裝飾器具體定義及使用技巧,需要的朋友可以參考下2018-12-12圖文詳解Django使用Pycharm連接MySQL數(shù)據(jù)庫
這篇文章主要介紹了Django使用Pycharm連接MySQL數(shù)據(jù)庫的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08keras.utils.to_categorical和one hot格式解析
這篇文章主要介紹了keras.utils.to_categorical和one hot格式解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Python selenium 加載并保存QQ群成員,去除其群主、管理員信息的示例代碼
這篇文章主要介紹了Python selenium 加載并保存QQ群成員 去除其群主、管理員信息的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-05-05