在python3下执行,首先需要安装pillow
pip3 install pillow
#coding=utf-8 from PIL import Image image_name='a.jpg' img=Image.open(image_name) print(img.size) print(img.mode) #convert to black/white picture img=img.convert('L') #img.show() #img.save('f.jpg') #缩小图片 w,h=img.size #如果图片太大,将高,宽做一个比例缩放 if w > 100: h=int((100/w)*h/2) #这里除去2是为了看着好看点 w=100 #防止图片缩放时,质量下降 img=img.resize((w,h),Image.ANTIALIAS) #img.save('ff.jpg') if w > 100: h=int((100/w)*h/2) #这里除去2是为了看着好看点 w=100 #防止图片缩放时,质量下降 img=img.resize((w,h),Image.ANTIALIAS) #img.save('ff.jpg') #convert to black/white picture img=img.convert('L') #img.show() #img.save('f.jpg') #缩小图片 w,h=img.size #如果图片太大,将高,宽做一个比例缩放 if w > 100: h=int((100/w)*h/2) #这里除去2是为了看着好看点 w=100 #防止图片缩放时,质量下降 img=img.resize((w,h),Image.ANTIALIAS) #img.save('ff.jpg') #将缩小的图片像素点的颜色值转为字符并存放到列表 data=[] #替换字符的列表(从左到右,颜色加深),这里用8个字符代替255个,每个字符代表大概32个像素区间. chars=[' ',',','1','+','n','D','@','M'] #根据图片的高,宽遍历像素点并取出每个像素点的颜色值 for i in range(0,h): line='' for j in range(0,w): pi=img.getpixel((j,i)) #用字符去替代像素点的值 for k in range(0,8): if pi < (k+1) * 32: line += chars[7-k] break data.append(line) #将保存的像素字符列表写入到文件 file1=open(image_name+'.txt','w') for d in data: print(d,file=file1) file1.close() print('转换成功!')