图片转为字符图(pillow库)

# 1.导入Image类
from PIL import Image
# 2.使用Image的对象读取图片
image_name = '123.jpg'
img = Image.open(image_name)
# print(img.size,img.mode)
# 3.将图片转为灰度图片
img = img.convert('L') # L是转换灰度图片
# img.show() img.save('fff.jpg')
# 4.获取原图大小,并根据实际需要缩小图片
w,h = img.size
# 如果图片太大,将高和宽做一个等比例的缩放
if w > 100:
    h = int((100/w) * h/1.8)
    w = 100
# 等比例缩放用到resize方法,第二个参数是加入滤镜,保证缩放质量
img = img.resize((w,h),Image.ANTIALIAS)
# img.save('fff.jpg')
# 添加多行注释的快捷键: ctrl+/
# 5.将缩小的图片像素点的颜色值转为字符并存放到列表
data = []
chars = [' ','.','c','h','e','n','y','i','m','e','n','g']
# 根据图片宽度和高度遍历像素点并取出每个像素点的颜色值
for i in range(0,h):
    line = ''
    for j in range(0,w):
        # 取出每个像素点的值
        pi = img.getpixel((j,i))
        # 用字符去替换像素点的颜色值
        for k in range(0,12):
            if pi < (k+1) * 22:
                line += chars[11-k]
                break
    data.append(line)
# 6.将保存的像素字符列表写入到文件中
f = open(image_name+'.txt','w')
for d in data:
    print(d,file=f)
f.close()
print('successful!')

 

posted @ 2018-04-08 23:51  小隐于林i  阅读(724)  评论(0)    收藏  举报