全部产品
云市场

3.1 打印图片

更新时间:2019-09-18 15:40:01

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

Parameters/参数说明

参数名称 参数类型 参数说明
StrFile string 文件路径

Return Value/返回信息

  1. 暂无

Remarks/备注

  1. 拿到图片对象,并转换图片模式(‘’L‘’),L模式可以去到图片的个像素的灰度参数;
  2. 定义图片缩放长度、替换字符的串(根据灰度值排序);
  3. 遍历缩放后每一个点位置,并获取该点位置的灰度值,根据灰度值替换为相应的替换字符;
  4. 打印在控制台;

  1. 利用 python image模块和简单用符号,再控制台打印出图片的图片轮廓
  2. PIL 安装 pip install Pillow

Example/实例

Example 打印图片

  1. from PIL import Image
  2. import sys
  3. import os
  4. def PrintImg(StrFile):
  5. try:
  6. pic = os.path.abspath(StrFile) #获取图片路径参数
  7. except:
  8. print(StrFile)
  9. img = Image.open(pic) #获取图片对象
  10. width = img.width #获取图片宽度
  11. height = img.height #获取图片高度
  12. gray_img = img.convert('L') #图片转换为'L'模式 模式“L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度
  13. scale = width // 100 #图片缩放100长度
  14. char_lst = ' .:-=+*#%@' #要替换的字符
  15. char_len = len(char_lst) #替换字符的长度
  16. for y in range(0, height, scale): #根据缩放长度 遍历高度
  17. for x in range(0, width, scale): #根据缩放长度 遍历宽度
  18. choice =gray_img.getpixel((x, y)) * char_len // 255 #获取每个点的灰度 根据不同的灰度填写相应的 替换字符
  19. if choice==char_len:
  20. choice=char_len-1
  21. sys.stdout.write(char_lst[choice]) #写入控制台
  22. sys.stdout.write('\n')
  23. sys.stdout.flush()
  24. pass