PIL字符图

个人兴趣学习

在网上无事瞎逛的时候发现的一个比较有趣的图片处理,看了之后蠢蠢欲动就来学习了一下并试着写了几行代码实现

直接上代码    新人代码  写的很不完善

from PIL import Image

def turn(img):
    # 转为字符串后占时存储
    txt = ""
    # 图片的高宽像素进行每个像素点的遍历   先高后宽进行横向遍历  确定后面得到的图片是横铺的
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            # 得到遍历像素点的RGB值
            grey = img.getpixel((j,i))
            # 将每一个像素点RGB值在字符列表中找到对应的字符
            txt += char[int(grey / num) - 1]
        # 每行填写完之后进行换行
        txt += '\n'
    # 返回写好的txt字符文本
    return txt

char = list(r"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 打开需要转换的图片
pic = Image.open(r"C:\Users\80it\Pictures\Nardack\キンギョ.png")

# 将需要转换的图片先转换为绘图  方便后面进行直接按坐标确定灰图RGB值
pic = pic.convert("L")

# 确保索引不会超过字符串长度
num = 255 / len(char)

# 将图片缩放
width, height = pic.size
# 找到适合电脑尺寸的比例
pic = pic.resize((int(width * 1.0),int(height * 0.6)))

if __name__ == "__main__":
    # 将写好的字符文本写入电脑并保存
    with open(r"C:\Users\80it\Desktop\charpic.txt","w") as f:
        f.write(turn(pic))

运行结果如下:

进行字符的绘画   还是很有趣的

猜你喜欢

转载自www.cnblogs.com/MaGnet/p/9953740.html
PIL
今日推荐