zoukankan      html  css  js  c++  java
  • Python 实现图片转换为字符画

    主要使用 pillow  

    如果没有安装 使用 pillow install pillow 安装一下

    看代码:

    from PIL import Image
    import argparse

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

    def getChar(r,g,b,alpha=256):
    if alpha == 0:
    return ' '
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
    unit = (256.0 + 1)/length
    return ascii_char[int(gray/unit)]

    parser = argparse.ArgumentParser()

    parser.add_argument('file')
    parser.add_argument('-o','--output')
    parser.add_argument('--width', type = int, default = 80)
    parser.add_argument('--height', type = int, default = 80)

    args = parser.parse_args(http://www.my516.com)

    IMG = args.file
    WIDTH = args.width
    HEIGHT = args.height
    OUTPUT = args.output

    if __name__ == '__main__':

    im = Image.open(IMG)
    im = im.resize((WIDTH,HEIGHT),Image.NEAREST)

    txt=""

    for i in range(HEIGHT):
    for j in range(WIDTH):
    txt += getChar(*im.getpixel((j,i)))
    txt += ' '

    print(txt)

    if OUTPUT:
    with open(OUTPUT,'w') as f:
    f.write(txt)
    else:
    with open('output.txt','w') as f:
    f.write(txt)
     
    ---------------------

  • 相关阅读:
    USACO 3.3 A Game
    USACO 3.3 Camelot
    USACO 3.3 Shopping Offers
    USACO 3.3 TEXT Eulerian Tour中的Cows on Parade一点理解
    USACO 3.3 Riding the Fences
    USACO 3.2 Magic Squares
    USACO 3.2 Stringsobits
    USACO 3.2 Factorials
    USACO 3.2 Contact
    USACO 3.1 Humble Numbers
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11322401.html
Copyright © 2011-2022 走看看