用python 控制台打印图片示例

来源:互联网 发布:什么软件推广最好 编辑:程序博客网 时间:2024/06/18 13:57

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

   PIL 安装 pip install Pillow

步骤:

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

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

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

4、打印在控制台;

代码如下:

#-*- coding:utf-8 -*-from PIL import Imageimport sysimport osdef _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

效果如下:


4 0
原创粉丝点击