python字符画

python实现字符画

因为近期看到的一个blink,让我对字符画燃起了兴趣,好像在#有点上头#这里,慢慢翻下去就会知道

实验材料
  1. 图片一张
  2. python环境
  3. PIL库,具体pip安装即可,不要告诉我你不会pip intall
代码部分
from PIL import Image

while True:
    IMG = input('图片路径>>>')  #文件路径
    WIDTH = 80  #定义输出画面的宽度
    HEIGHT = 45  #定义
    ascii_char = list("!@#$%^&*()_+1234567890-=qwertyuiop[]QWERTYUIOP{}|\ASDFGHJKL:asdfghjkl;'ZXCVBNM<>?zxcvbnm,./~`")  #所用字符列表

    # 将256灰度映射到70个字符上
    def get_char(r, g, b, alpha=256):
        if alpha == 0:
            return ' '
        length = len(ascii_char)
        gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)  # 计算灰度
        unit = (256.0 + 1) / length
        return ascii_char[int(gray / unit)]
    if __name__ == '__main__':  
        im = Image.open(IMG)
        im = im.resize((WIDTH, HEIGHT), Image.NEAREST)
        txt = ""
        for i in range(HEIGHT):
            for j in range(WIDTH):
                txt += get_char(*im.getpixel((j, i)))
            txt += '\n'
        print(txt)

效果图:在这里插入图片描述
在这里插入图片描述可能因为我的终端颜色配置的过,效果一般

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值