PIL字符图
Posted magnet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 += ‘ ‘ # 返回写好的txt字符文本 return txt char = list(r"[email protected]%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`‘. ") # 打开需要转换的图片 pic = Image.open(r"C:Users80itPicturesNardackキンギョ.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:Users80itDesktopcharpic.txt","w") as f: f.write(turn(pic))
运行结果如下:
进行字符的绘画 还是很有趣的