Heim >Backend-Entwicklung >Python-Tutorial >Python zeigt ein Bild im Terminal an
Das Linux-Terminal steckt voller Wunder und viele hervorragende Software wird im Terminal geboren. Im Vergleich dazu ist das Konzept von Windows selbst nicht mit dem von Linux vereinbar, das verstehen Sie also.
Als nächstes könnten wir uns genauso gut zuerst überlegen, wie man ein Bild im Terminal anzeigt.
Bei der Anzeige im Terminal ist es definitiv nicht so heikel wie in der Bildbetrachtungssoftware. Wir ersetzen einfach die Pixel an einer bestimmten Stelle durch Zeichen und zeigen den groben Umriss an.
Codieren
Da nun die Idee ganz klar ist, beginnen wir mit dem Codieren.
# coding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf8') # __author__ = '郭 璞' # __date__ = '2016/8/4' # __Desc__ = 一个可以将图片转换成终端字符形式的小工具 from time import * import Image class ImageTool(): def __init__(self): print 'Initialization Completed! @',ctime() def getChars(self,image_pixels,image_width,image_height): replace_chars = 'ABCDEFGHIJKLMNO ' terminal_chars = '' for h in xrange(image_height): for w in xrange(image_width): point_pixel = image_pixels[w,h] terminal_chars +=replace_chars[int(sum(point_pixel)/3.0/256.0*16)] terminal_chars+='\n' return terminal_chars def formatImage(self,imagename,image_width,image_height): img = Image.open(imagename,'rb') if img.mode != 'RGB': img = img.convert('RGB') w,h = img.size rw = image_width*1.0/w rh = image_height*1.0/h r = rw if rw<rh else rh rw = int(r*w) rh = int(r*h) img = img.resize((rw,rh),Image.ANTIALIAS) return img def entrance(self,image_path,out_width,out_height): image = self.formatImage(imagename=image_path,image_width=out_width,image_height=out_height) image_pixels = image.load() out_width ,out_height = image.size terminal_chars = self.getChars(image_pixels=image_pixels,image_width=out_width,image_height=out_height) if __name__ == "__main__": tool = ImageTool() imagename = sys.argv[1] w = int(sys.argv[2]) h = int(sys.argv[3]) tool.entrance(imagename,w,h)
Ausführen
Das Ausführen des Programms ist sehr einfach. Wir folgen: Führen Sie es einfach mit Befehlszeilenparametern aus.
Python Image2Chars.py Zielbildname Ausgabebreite Ausgabehöhe
Beachten Sie, dass der Bildname der Bildname einschließlich des vollständigen Pfads ist
Ergebnis
•Materialbilder
•Terminal-Anzeigeeffekte
Textartige Bilder sehen anständig und zart aus. Nicht so gut. Dies liegt daran, dass die Granularität bei der Pixelkonvertierung etwas zu groß ist.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.
Weitere Artikel zum Thema Python, das ein Bild im Terminal anzeigt, finden Sie auf der chinesischen PHP-Website!