微信号:ToFeelings

介绍:技术的深度和广度只能靠自己努力去发掘,谁也不能替你学习,在这里希望你能有所收获.

你认识这样的佩奇吗?

2019-01-19 00:30 訢亮

啥是佩奇?

2019年1月17日,一则贺岁短片《啥是佩奇》,刷爆朋友圈。

这是一只程序猿突然想到的知识点...



代码(ascii.py)

 
           
  1. #!/usr/bin/env python3

  2. # -*- coding: utf-8 -*-


  3. from PIL import Image

  4. import argparse


  5. # 命令行输入参数

  6. parser = argparse.ArgumentParser()


  7. parser.add_argument('file')  # 输入文件

  8. parser.add_argument('-o', '--output')  # 输出文件

  9. parser.add_argument('--width', type=int, default=80)  # 输出字符画宽

  10. parser.add_argument('--height', type=int, default=80)  # 输出字符画高


  11. # 获取参数

  12. args = parser.parse_args()


  13. IMG = args.file

  14. WIDTH = args.width

  15. HEIGHT = args.height

  16. OUTPUT = args.output


  17. # 示例:$ python ascii.py p.png -o out.txt --width 90 --height 45


  18. ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")



  19. # 将256灰度映射到70个字符上

  20. def get_char(r, g, b, alpha=256):

  21.    if alpha == 0:

  22.        return ' '

  23.    length = len(ascii_char)

  24.    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)


  25.    unit = (256.0 + 1) / length

  26.    return ascii_char[int(gray / unit)]



  27. if __name__ == '__main__':

  28.    im = Image.open(IMG)

  29.    im = im.resize((WIDTH, HEIGHT), Image.NEAREST)


  30.    txt = ""


  31.    for i in range(HEIGHT):

  32.        for j in range(WIDTH):

  33.            txt += get_char(*im.getpixel((j, i)))

  34.        txt += '\n'


  35.    print(txt)


  36.    # 字符画输出到文件

  37.    if OUTPUT:

  38.        with open(OUTPUT, 'w') as f:

  39.            f.write(txt)

  40.    else:

  41.        with open("output.txt", 'w') as f:

  42.            f.write(txt)

运行

 
           
  1. //请先安装 python3 、pip


  2. //install

  3. pip install argparse

  4. pip install pillow


  5. //命令

  6. python3 ascii.py peppapig.png -o peppapig.txt

你认识这样的佩奇吗?


 
IT小圈儿 更多文章 管理就从这入门 - 读《做个会带人、会管人、会帮人的中层领导》 好久不见 程序员如何做好工作交接? Jquery导出带样式的Excel 广告系统浅谈反作弊
猜您喜欢 Java程序员也应该知道的系统知识系列之CPU 六年过去,你只是换了个厕所躲着抽烟 百度又在人工智能加码,据说还有浪潮! 7款本地搭建PHP环境工具推荐 前端面试几个重要知识点