这也是我第一个python小程序主要用来实现把图像转换成为一个,字符画,就类似下面这样

代码示例
首先需要用到的就是PIL库,这是Python中一个专门用来处理图像的库,首先我们想学习PIL并编写上面这个小程序就需要先导入PIL库,使用pip就可以方便的导入(关于pip的安装请自行查找方法,非常简单)
from PILimport Image
import argparse
'''
Image模块是PIL中最重要的模块,它提供了诸多图像操作的功能,比如创建、打开、显示、保存图像等功能,合成、裁剪、滤波等功能,获取图像属性功能,如图像直方图、通道数等。
'''
#直接输出至控制台
IMG ='test.png'
HEIGHT =25 #设置输出也是压缩后图片高度
WIDTH =78 #设置输出后也是压缩后图片的宽度
ascii_char =list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #用来绘制字符画所用到的字符
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
return ascii_char[int(gray/unit)]
im = Image.open(IMG)
print(im.getbands())#图片所拥有的波段,比如 R G B A
print(im.mode)#图片颜色模式
im = im.resize((WIDTH,HEIGHT),Image.NEAREST) #实现图片的缩放功能
txt =""
for iin range(HEIGHT):
for jin range(WIDTH):
txt += get_char(*im.getpixel((j,i)))
txt +='\n'
print(txt)
这个小程序使用了缩放功能来固定图片大小,在pillow中图片的缩放有两种方式,1.使用resize函数,2,使用thumbnail函数
resize函数可以缩小,也可以放大
thumbnail只能缩小,不能放大
所以,如果你只打开一次图片,要存出多个尺寸的话,要么,从大到小开始缩放。要么,使用resize.建议从大到小开始缩放,因为,使用resize放大的话,你可以想象那个马赛克。当然,你也可以设置缩放图片的质量
- PIL.Image.NEAREST:最低质量
- PIL.Image.BILINEAR:双线性
- PIL.Image.BICUBIC:三次样条插值
- PIL.Image.ANTIALIAS:最高质量
