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就可以了,高度看情况调整。
'''
复制代码

 

posted @   小鱼小鱼hi  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示