酷叮貓編程課堂:python生成字符畫

大家好,我是酷叮貓少兒編程的酷酷老師,今天給大家介紹的是一個非常有意思的小程序。

相信大家都看過很多非常漂亮的圖片,那麼python如何把圖片用字符顯示出來呢?

原圖是這樣的:

酷叮貓編程課堂:python生成字符畫

生成的字符畫是這樣的:

酷叮貓編程課堂:python生成字符畫

是不是很有意思!那接下來就和老師一起來編寫這個程序吧。

一、首先,讓我們安裝一個非常著名的圖形庫名字叫pillow

如果各位同學的電腦上已經安裝了python環境,那麼執行下面的指令

python -m pip install pillow

安裝完畢,我們就可以使用pillow 庫來繪製圖形了。

二、然後,新建一個文件,名字叫PictureToCharImg.py

代碼如下:

from PIL import Image

codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ''' # 生成字符畫所需的字符集

count = len(codeLib)

def transform1(image_file):

image_file = image_file.convert("L") # 轉換為黑白圖片,參數"L"表示黑白模式

codePic = ''

for h in range(0, image_file.size[1]): # size屬性表示圖片的分辨率,'0'為橫向大小,'1'為縱向

for w in range(0, image_file.size[0]):

gray = image_file.getpixel((w, h)) # 返回指定位置的像素,如果所打開的圖像是多層次的圖片,那這個方法就返回一個元組

codePic = codePic + codeLib[int(((count - 1) * gray) / 256)] # 建立灰度與字符集的映射

codePic = codePic + ' '

return codePic

fp = open('叮噹貓.png', 'rb')

image_file = Image.open(fp)

image_file = image_file.resize((int(image_file.size[0] * 0.75), int(image_file.size[1] * 0.5))) # 調整圖片大小

print('Info:', image_file.size[0], ' ', image_file.size[1], ' ', count)

tmp = open('pa.txt', 'w')

tmp.write(transform1(image_file))

tmp.close()

三、最後,通過命令行格式執行下面的指令

`python PictureToCharImg.py'

如果沒有錯誤,那麼就會在目錄下生成一個pa.txt文件。

打開pa.txt文件,設置字體為宋體 小六號字 就可以直接看到效果啦。

今天的分享就到這裡,那我們下次再見啦!


分享到:


相關文章: