Python-Bild-zu-Zeichen-Zeichnungscode: Berechnen Sie zuerst den Graustufenwert, der der Farbe des Bildes entspricht, und erhalten Sie dann das Zeichen, das jedem Pixel im Bild entspricht, aus dem Zeichensatz basierend auf dem Graustufenwert. Der Code lautet [args = parser .parse_args() 】.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Python-Version 3.9, DELL G3-Computer. Diese Methode ist für alle Computermarken geeignet.
Verwandte kostenlose Lernempfehlungen: Python-Video-Tutorial
1. Berechnen Sie den Graustufenwert, der der Farbe des Bildes entspricht:gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
# !/usr/bin/env python # -*- coding:utf-8 -*- 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 = 50) #输出字符画宽 parser.add_argument('--height', type = int, default = 50) #输出字符画高 #获取参数 args = parser.parse_args() IMG = args.file WIDTH = args.width HEIGHT = args.height OUTPUT = args.output # 字符画使用的字符集 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") def get_char(r,g,b,alpha = 256): """将256灰度映射到70个字符上""" if alpha == 0: return ' ' length = len(ascii_char) # 计算灰度的公式 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0 + 1)/length index=int(gray/unit) return ascii_char[index] 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 += get_char(*im.getpixel((j,i))) txt += '\n' print(txt) #字符画输出到文件 if OUTPUT: with open(OUTPUT,'w') as f: f.write(txt) else: with open("output.txt",'w') as f: f.write(txt)z
Das obige ist der detaillierte Inhalt vonWas ist der Code zum Konvertieren von Python-Bildern in Charakterzeichnungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!