
碼神鎮(zhèn)樓
準備階段
首先需要安裝一個Python的圖形處理庫。終端直接輸入:
brew install Pillow
實現(xiàn)階段
不多說,直接上打碼。
from PIL import Image # 導入Pillow的Image模塊
IMG = "/Users/##########/avart.jpg" # 需要處理掉的圖片路徑
filePath = "/##############/avart.txt" # 處理結果的保存路徑
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
height = 45
width = 100
# 重點。將256灰度映射到70個字符上
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 = (256.0 + 1) / length # 比例
inext = int(gray / unit) # 根據(jù)灰度求對應的index
return ascii_char[inext]
if __name__ == '__main__':
im = Image.open(IMG) # 讀取圖片
im = im.resize((width, height), Image.NEAREST) # 調(diào)整圖片的大小
txt = ""
for i in range(height): # 遍歷圖片的像素點,獲取每一個像素點的rgbA值
for j in range(width):
txt += get_char(*im.getpixel((j, i))) # 獲得相應位置像素點的值組元(a,g,b,a)
txt += '\n' # 換行
print txt
# 字符圖輸出到文件
with open(filePath, 'w') as f: # 輸出到指定文件
f.write(txt)
好了,就是這么一點碼。很簡單吧。
下面看看效果圖:

源圖

效果圖
覺得還不錯的話,就拜托點個贊,加個關注哦!??