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

         

  • 相关阅读:
    17 中国天气网信息爬取
    16 select和css选择器(提取元素详解)
    15 Beautiful Soup(提取数据详解find_all())
    linux命令之tail命令
    Linux命令之ps命令
    Android使用Fiddler模拟弱网络环境测试
    发送邮件smtplib,email,邮件头header,定时器schedule,爬虫requests(转)
    python实现发送带附件的邮件 (转载)
    VMware centos 7 图形界面的分辨率和终端字体大小设置(转)
    docker-compose: 未找到命令
  • 原文地址:https://www.cnblogs.com/MMMMzoe/p/7068522.html
Copyright © 2011-2022 走看看