猫史档案馆


【Python作品分享】draw【作品秀】

用户:zyf神鹰zyf神鹰查看:0 回复:0 评论:0 创建时间:2022-10-24T10:13:44


【作品展示】

center_image

 

【作品介绍】

cmd操作

 

【作品源代码】

from PIL import Image
import argparse


# 命令行输入参数处理
parser = argparse.ArgumentParser()

# 添加参数
parser.add_argument("file")   #输入文件
parser.add_argument("-o","--output")   #输出文件
parser.add_argument("--width", type=int, default=160)   #输出字符画宽
parser.add_argument("--height", type=int, default=45)   #输出字符画高

#获取参数
args = parser.parse_args()

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

#字符画中所出现的字符集
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i")

def get_char(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)]
    
    
if __name__ == "__main__":
    
    rgb_im = Image.open(IMG)
    im = rgb_im.convert("RGBA")
    im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
    
    txt = ""
    
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i)))
        txt += "\n"
    
    print("转化成功")
    
    if OUTPUT:
        with open(OUTPUT,"w") as f:
            f.write(txt)
    else:
        with open("output.txt","w") as f:
            f.write(txt)

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页