相信大家都看过很多非常漂亮的图片,那么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文件,设置字体为宋体 小六号字 就可以直接看到效果啦。