通过前文介绍,大体上可以用学过的知识做一些东西了。
这里简单介绍下python参数解析argparse命令
。
使用argparse
需要引用
import argparse
然后调用
parser = argparse.ArgumentParser()
ArgumentParser()函数可以传一些参数
parser = argparse.ArgumentParser(description='This is a PyMOTW sample program')
参数有很多种类型,读者自己查阅,参考资料的链接:
https://blog.ixxoo.me/argparse.html
接下来添加参数
parser.add_argument('file')
parser.add_argument('-o', '--output')
添加参数 -表示可选参数
,用于一个字符,表示缩写
--也是可选参数
,用于两个或以上的字符
最后是参数解析
parser.parse_args(['-o', 'output.txt'])
parse_args()运行时,会用'-'来认证可选参数,剩下的即为位置参数
。
位置参数不可缺少,可选参数可提供默认值
如果python程序运行,parse_args()会依次处理传入参数
,第一个参数为该python程序的文件名
,其余的依次为传入参数。
这些文字看不懂不要紧,试着看看下边的程序和运行结果
1 | #-*-coding:utf-8-*- |
这个程序就是解析命令行参数,然后将输入的参数打印出来
如果不输入参数直接python test.py 试试?
提示缺少位置参数file
试试python test.py test.png
四个命令行参数打印出来了
–height 可选参数为默认值30
–width 可选参数为默认值50
file 位置参数为test.png
-o 为–output的缩写为None,因为没提供默认值。我也没输入-o参数
所以为None
输入python test.py test.png –width 30 – height 50 -o output.txt
用全称–output录入也可以
python test.py test.png –width 30 – height 50 –output output.txt
这个过了就可以往下做了,下面安装PIL库,PIL为python处理图形图像的基本库
windows安装的方式为:
http://jingyan.baidu.com/article/ff42efa929e6c8c19f220254.html
Linux安装方式为:
下面编写图片转字符画程序:
将文件命名为print.py
1 包含库和函数,定义基本的字符序列
1 | from PIL import Image |
2 编写转换函数
1 | # 将256灰度映射到70个字符上 |
0.2126 * r + 0.7152 * g + 0.0722 * b为官方提供的
灰度计算公式,unit表示一个单元占多少灰度,
gray/unit可以找到对应的单元,从而转换为字符。
3 调用get_char完成转换
1 | if __name__ == '__main__': |
Image
为PIL
提供的类,可以看看
im.getpixel((j,i)) 通过传入横纵坐标,返回tuple
tuple中数据依次为r,g,b,alpha
之前讲过可以通过*() 或*[]实现逐个元素传入。
get_char(*im.getpixel((j,i)))将参数传入返回字符。
之后分别将字符打印出来,并写入文件。
源码下载地址: python图片转字符画
效果如下: