1 、環境準備
WordPress 主機名
IP
系統
Python 版本
Python-01
192.168.10.9
CentOS release 6.9 (Final)
3.5.4
參考:https://www.shiyanlou.com/courses/370/labs/1191/document
2 、原理
字元畫是一系列字元的組合,可以把字元看作是比較大塊的畫素,一個字元能表現一種顏色(暫且這麼理解吧),字元的種類越多,可以表現的顏色也越多,圖片也會更有層次感。
灰度值:指範圍一般從 0 到 255,白色為 255,黑色為 0,故黑白圖片也稱灰度影象。
任何顏色都由紅、綠、藍三基色組成,假如原來某點的顏色為 RGB(R,G,B),本次實驗可以用以下公式來轉換灰度:
1
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
3 、實驗
本次實驗的核心是 pillow 庫的 Image 模組和 argparse 模組。
3.1 影象處理庫 pillow
Pillow 是 Python 裏的影象處理庫,支援 Python3.X,提供了廣泛的檔案格式支援和強大的影象處理能力,主要包括影象儲存、影象顯示、格式轉換以及基本的影象處理操作等。
Image 類使用説明參考:http://pillow.readthedocs.io/en/latest/reference/Image.html
3.2 安裝 pillow 庫
直接用 Python3 自帶的 pip 安裝即可:
1
pip install pillow
widonws 端可以用以下命令安裝:
1
python3 -m pip install pillow
3.3 argparse 模組
argparse 模組使編寫使用者友好的命令列介面變得更容易。程式只需定義好它要求的引數,然後 argparse 將負責如何從 sys.argv 中解析出這些引數。 argparse 模組還會自動生成幫助和使用資訊並且當使用者賦給程式非法的引數時產生錯誤資訊。
3.3.1 ArgumentParser 物件
add_argument() 方法必須知道期望的是可選引數,例如-o 或者–output 引數用來設定輸出檔案:
1
2
parser = argparse.ArgumentParser()
parser.add_argument(‘-o’, ‘–output’)
add_argument() 的 default 關鍵字引數,其預設值為 None,指出如果命令列引數沒有出現時它們應該是什麼值,還可以設定其型別 type,例如設定輸出字元畫的寬:
1
parser.add_argument(‘–width’, type = int, default = 80)
3.4 準備圖片
3.5 原始碼
原始碼在 Windows 、 CentOS 和 Ubuntu 環境均驗證成功。
1
vim test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python3
from PIL import Image
import argparse
# 命令列輸入引數處理
parser = argparse.ArgumentParser()
parser.add_argument(‘file’) # 輸入檔案
parser.add_argument(‘-o’, ‘–output’) # 輸出檔案
# 輸出字元畫寬,預設值為 80
parser.add_argument(‘–width’, type = int, default = 80)
# 輸出字元畫高,預設值為 80
parser.add_argument(‘–height’, type = int, default = 80)
# 獲取引數
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
# 灰度值小(暗)的用列表開頭的符號,灰度值大(亮)的用列表末尾的符號。
ascii_char = list(“$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,”^`’. “”)