如何用Python將圖片轉(zhuǎn)為字符畫
今天打算玩?zhèn)€好玩的,也是基于一個優(yōu)秀的圖像處理庫——PIL,使用ascii字符把圖片轉(zhuǎn)為黑白字符畫。
首先有個問題,就是模擬灰度,這里有個公式:
1 | Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B |
這樣就好辦了。當(dāng)然,RGB模式下,256x256x256的顏色范圍雖然被轉(zhuǎn)換成了256的灰度范圍,字符還是不好一一對應(yīng)。我們可以使用一個字符對應(yīng)多個灰度的方式來解決。
記得要先安裝PIL庫,其中:
如果是Python 2,運(yùn)行 pip install PIL。
如果是Python 3,運(yùn)行 pip install pillow。
接下來直接上代碼吧:
from PIL import Image
#設(shè)置顯示的字符集
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',然后在最后寫進(jìn)去:
with open(OUTPUT, 'w') as f:
f.write(txt)最后,我們得到了這個:

到此這篇關(guān)于如何用Python將圖片轉(zhuǎn)為字符畫的文章就介紹到這了,更多相關(guān)用Python將圖片轉(zhuǎn)為字符畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3學(xué)習(xí)urllib的使用方法示例
本篇文章主要介紹了Python3學(xué)習(xí)urllib的使用方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
基于Python在MacOS上安裝robotframework-ride
今天小編就為大家分享一篇關(guān)于基于Python在MacOS上安裝robotframework-ride,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
python創(chuàng)建學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python創(chuàng)建學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法
今天小編就為大家分享一篇python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python+PyQt5實(shí)現(xiàn)多屏幕協(xié)同播放功能
在現(xiàn)代會議展示、數(shù)字廣告、展覽展示等場景中,多屏幕協(xié)同播放已成為剛需,下面我們就來看看如何利用Python和PyQt5開發(fā)一套功能強(qiáng)大的跨屏播控系統(tǒng)吧2025-03-03
Python實(shí)現(xiàn).gif圖片拆分為.png圖片的簡單示例
有時候需要把GIF圖片分解成一張一張的靜態(tài)圖,jpg或者png格式,下面這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn).gif圖片拆分為.png圖片的相關(guān)資料,需要的朋友可以參考下2023-01-01

