zoukankan      html  css  js  c++  java
  • python图片转字符画(windows)

    1.环境准备

      a. 找到python安装路径:python\python36\Scripts\easy_install.exe,在环境变量PATH里添加路径:python\python36\Scripts,保存之后,点击安装easy_install.exe

      b. 打开命令行窗口,输入easy --version查看版本信息,安装成功

      c.安装pillow:在cmd窗口执行 pip install pillow

         以上是环境准备

    2.代码段:

     1 from PIL import Image
     2 import argparse
     3 
     4 #命令行输入参数处理
     5 parser = argparse.ArgumentParser()
     6 
     7 parser.add_argument('file')     #输入文件
     8 parser.add_argument('-o', '--output')   #输出文件
     9 parser.add_argument('--width', type = int, default = 40) #输出字符画宽
    10 parser.add_argument('--height', type = int, default = 40) #输出字符画高
    11 
    12 #获取参数
    13 args = parser.parse_args()
    14 
    15 IMG = args.file
    16 WIDTH = args.width
    17 HEIGHT = args.height
    18 OUTPUT = args.output
    19 
    20 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
    21 # 变量ascii_char: 存储用于显示图片的字符种类。我们要注意到,这个list的最后一个元素是空格,这表示,我们
    22 # 将使用空格来代替原图片中灰度值最高的像素点(在灰度图像中,灰度值最高为255,代表白色,最低为0,代表黑色)。
    23 # list中的第一个元素是$,这表示我们将使用$来代替原图片中灰度值最低的像素点。其余字符依此类推。
    24 
    25 # 将256灰度映射到70个字符上
    26 def get_char(r,g,b,alpha = 256):
    27     if alpha == 0:
    28         return ' '
    29     length = len(ascii_char)
    30     gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
    31 
    32     unit = (256.0 + 1)/length
    33     return ascii_char[int(gray/unit)]
    34 
    35 if __name__ == '__main__':
    36 
    37     im = Image.open(IMG)
    38     im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
    39 
    40     txt = ""
    41 
    42     for i in range(HEIGHT):
    43         for j in range(WIDTH):
    44             txt += get_char(*im.getpixel((j,i)))
    45         txt += '\n'
    46 
    47     print (txt)
    48 
    49     #字符画输出到文件
    50     if OUTPUT:
    51         with open(OUTPUT,'w') as f:
    52             f.write(txt)
    53     else:
    54         with open("output.txt",'w') as f:
    55             f.write(txt)
    View Code

    3.执行:

       在cmd窗口执行:python  文件路径\xxx.py 图片路径\xxx.png

         

  • 相关阅读:
    谷歌镜像站【转】
    Jquery基础教程第二版学习记录
    js 闭包理解
    power query 分组合并展示
    WPF Event 在 Command 中的应用初级篇,支持所有Event 展示松耦合设计的全部代码
    WPF 面试题及答案(三)
    WPF 面试题及答案(二)
    WPF 基础面试题及答案(一)
    一个简单WPF登陆界面,包含记住密码,自动登录等功能,简洁美观
    Java基础
  • 原文地址:https://www.cnblogs.com/MMMMzoe/p/7068522.html
Copyright © 2011-2022 走看看