Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws2122:asciia:ascii-animation.py

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws2122:asciia:ascii-animation.py [2022/03/17 12:22]
MoscarTU
ws2122:asciia:ascii-animation.py [2022/03/30 08:23] (aktuell)
MoscarTU
Zeile 1: Zeile 1:
 ===== ASCII-Animation.py ===== ===== ASCII-Animation.py =====
 +Diese Datei ist die Hauptdatei unseres Programms ASCIÌ-Animation. Sie muss ausgeführt werden, um das Programm zu starten. Neben der Main-Methode werden noch einige Hilfsfunktionen,​ unter anderem für eine kleine Benutzeroberfläche,​ implementiert.
 <code python> <code python>
 import cv2 # muss extra installiert werden mit: pip install opencv-python import cv2 # muss extra installiert werden mit: pip install opencv-python
Zeile 19: Zeile 19:
 abh.Abbruchsignal() abh.Abbruchsignal()
 </​code>​ </​code>​
-An dieser Stelle werden lediglich externe Bibliotheken und unsere Hilfsdateien importiert.+An dieser Stelle werden lediglich externe Bibliotheken und unsere Hilfsdateien importiert. Beachtet werden muss nur, dass cv2 (opencv), readchar und pyfiglet standardmäßig nicht bei Python installiert sind.
 <code python> <code python>
 # Methode für korrekte Eingabe der Ja/Nein Abfragen, ArtZahl ist für welche Eingabe gemeint ist (beliebig erweiterbar) # Methode für korrekte Eingabe der Ja/Nein Abfragen, ArtZahl ist für welche Eingabe gemeint ist (beliebig erweiterbar)
Zeile 72: Zeile 72:
             break             break
 </​code>​ </​code>​
-Diese Funktion ist für das Speichern der Frames aus dem Video zuständig. ​Das wird weiter ​unten ein zusätzlicher Thread für die Methode ausgeführt,​ sodass ​dieses hier mit dem Umwandeln der Frames zu ASCII und anschließender ​Ausgabe gleichzeitig passieren kann.+Diese Funktion ist für das Speichern der Frames aus dem Video zuständig. ​Weiter ​unten wird ein zusätzlicher Thread für die Methode ausgeführt,​ sodass ​das Umwandeln der Frames zu ASCII und die anschließende ​Ausgabe gleichzeitig passieren kann.
 <code python> <code python>
 # main # main
Zeile 155: Zeile 155:
 t1.join() # Thread Ende bei erfolgreichen Abschließen der Schleifen t1.join() # Thread Ende bei erfolgreichen Abschließen der Schleifen
  
-shutil.rmtree('​Bildercache'​) # Löscht kompletten ​Cacheordner+shutil.rmtree('​Bildercache'​) # Löscht kompletten ​Bildercache
 print(Style.RESET_ALL) print(Style.RESET_ALL)
 </​code>​ </​code>​
-Die for-Schleife geht alle Frames durch und ruft jedes mal die Datei "​AsciiBildConverter"​ auf, in der ein Bild zu einem ASCII-Bild umgewandelt wird. Dabei haben wir noch einen Timer, welcher die Zeit misst, damit die Videowiedergabe annähernd wie die vom Originalvideo ist. Allerdings ist das immer noch nicht optimal, weil die Berechnung dafür auch Mikrosekunden benötigt. ​+Die for-Schleife geht alle Frames durch und ruft jedes mal die Datei "​AsciiBildConverter"​ auf, in der ein "​normales" ​Bild zu einem ASCII-Bild umgewandelt wird. Durch die for-Schleife werden die Bilder sehr schnell umgewandelt und auf der Konsole hintereinander ausgegeben, wodurch es wie ein Video aussieht. Dabei haben wir noch einen Timer implementiert, welcher die Zeit misst, damit die Videowiedergabe annähernd wie die vom Originalvideo ist. Allerdings ist das immer noch nicht optimal, weil die Berechnung dafür auch Mikrosekunden benötigt. ​
 Am Programmende wird der Cache mit den Bildern gelöscht. Am Programmende wird der Cache mit den Bildern gelöscht.
  
 +Tipp: Bei einer Pause oder am Ende des Programms die Anaconda hochscrollen,​ dadurch wird sichtbar, dass es wie ein "​Daumenkino"​ ist.
ws2122/asciia/ascii-animation.py.1647516142.txt.gz · Zuletzt geändert: 2022/03/17 12:22 von MoscarTU