python3_图像
图像读取的Image.open()和cv2.imread()的区别-CSDN博客
报错:ModuleNotFoundError: No module named 'PIL'解决方法-CSDN博客
wordcloud: raise ValueError(“Only supported for TrueType fonts“)_是 傻羊啊的博客-CSDN博客
环境配置:
# pip install pillow
from PIL import Image char_set = '''$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ''' #im = Image.open('qq.png') # 这里如果照片文件在脚本路径下只用文件名是不行的,会报错(实际是去PIL\image.py同路径下找文件) im = Image.open('D:\code\my_learn\qq.png') im = im.convert('L') # 转为黑白图, 每个像素都一个灰度值,从0到255, 0是黑色, 255是白色 # im.save('D:\code\my_learn\\t.jpeg') # 这里也是,如果不加绝对路径,是保存到PIL\image.py同路径下 im.save('D:\code\my_learn\\t.jpeg') # 保存图片只是为了演示黑白照片 def get_char(gray): if gray >= 240: return ' ' # 灰度值大于240的,转成空字符串,这样看着舒服,其余的,按比例映射到字符集上 else: return char_set[int(gray/((256.0 + 1)/len(char_set)))] text = '' for i in range(im.height): for j in range(im.width): gray = im.getpixel((j, i)) # 每个像素点都可以通过im.getpixel方法获得灰度值。 返回值可能是一个int, 也可能是一个三元组 if isinstance(gray, tuple): # isinstance(object, classinfo) 判断object与classinfo的类型是否相同,相同返回True,否则返回false gray = int(0.2126 * gray[0] + 0.7152 * gray[1] + 0.0722 * gray[2]) text += get_char(gray) # 灰度值转成字符 text += '\n' with open('D:\code\my_learn\pic.txt', 'w')as f: f.write(text) ''' 强调一点,生成的txt文件不要打开查看,那样你看不到一个完整的字符画, 在浏览器里打开字符画,这样才可以看到完整的, 如果你把缩小的比例再放大一点,生成的字符画就会失去很多细节,一般来说,宽80就可以了,高度看情况调整。 '''