码迷,mamicode.com
首页 > 其他好文 > 详细

PIL字符图

时间:2018-11-13 20:34:45      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:users   for   main   return   http   学习   har   兴趣   代码   

个人兴趣学习

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

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

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))

运行结果如下:

技术分享图片

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

PIL字符图

标签:users   for   main   return   http   学习   har   兴趣   代码   

原文地址:https://www.cnblogs.com/MaGnet/p/9953740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!