用python 控制台打印图片示例

功能:利用 python 的 image模块和简单用符号,再控制台打印出图片的图片轮廓

   PIL 安装 pip install Pillow

步骤:

1、拿到图片对象,并转换图片模式(‘’L‘’),L模式可以去到图片的个像素的灰度参数;

2、定义图片缩放长度、替换字符的串(根据灰度值排序);

3、遍历缩放后每一个点位置,并获取该点位置的灰度值,根据灰度值替换为相应的替换字符;

4、打印在控制台;

代码如下:

#-*- coding:utf-8 -*-
from PIL import Image
import sys
import os

def _main():
  try:
    pic      = os.path.abspath(sys.argv[1])  #获取图片路径参数
  except:
    print('指定图片路径')
  img      = Image.open(pic)  #获取图片对象
  width    = img.width  #获取图片宽度
  height   = img.height #获取图片高度

  gray_img = img.convert('L')  #图片转换为'L'模式  模式“L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度

  scale    = width // 100  #图片缩放100长度
  char_lst = ' .:-=+*#%@'  #要替换的字符
  char_len = len(char_lst)  #替换字符的长度

  for y in range(0, height, scale):  #根据缩放长度 遍历高度
    for x in range(0, width, scale):  #根据缩放长度 遍历宽度
        choice =gray_img.getpixel((x, y)) * char_len // 255  #获取每个点的灰度  根据不同的灰度填写相应的 替换字符
        if choice==char_len:
            choice=char_len-1
        sys.stdout.write(char_lst[choice])  #写入控制台
    sys.stdout.write('\n')
    sys.stdout.flush()

if __name__ == '__main__':
    _main()

使用

将上面代码写入到picture.py中,执行命令:python picture.py ImgURL

效果如下:


  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值