工具
- Python3.6
- pillow
下载pillow(PIL)图像处理库
pip install pillow
代码块
def get_char(r,g,h,alpha = 256):
if alpha == 0:
return " "
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
length = len(ascii_char)
gray = (2126 * r + 7152 * g + 722 * b)/10000
x = int ( ( length /( alpha + 1 ) * gray )
return ascii_char[x]
- 定义 get_char 函数用来把图片的像素转换为字符
def main(file_name = "test.jpg", width = 80, height = 80, out_file_name = "out_file"):
text = ''
im = Image.open(file_name)
im = im.resize((width,height), Image.NEAREST)
for i in range(heigt):
for i in range(width):
content = im.getpixel ( ( j , i ) )
text += get_char(*content)
text += "\n"
print text
if __name__ == ’__main__‘:
main(file_name = "ascii.png")
- Image.open 用Image类的open函数打开图片获得一个图片对象,用.resize函数改变图片尺寸。
定义:im.resize(size) ⇒ image
im.resize(size, filter) ⇒ image
含义:返回改变尺寸的图像的拷贝。变量size是所要求的尺寸,是一个二元组:(width, height)。
变量filter为NEAREST、BILINEAR、BICUBIC或者ANTIALIAS之一。如果忽略,或者图像模式为“1”或者“P”,该变量设置为NEAREST。
注意:在当前的版本中bilinear和bicubic滤波器不能很好地适应大比例的下采样(例如生成缩略图)。用户需要使用ANTIALIAS,除非速度比质量更重要。