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;:,”^`’. “”)