Zum Inhalt springen

ASCII-Animationswerkstatt

ASCII Animation Workbench

Baut eine Animation aus Zeichenrastern aus einem Video, einem GIF, einem Bild-für-Bild-Editor, Lauftext oder einem prozeduralen Effekt und exportiert nackte Frames, ANSI, asciicast v2, ein animiertes GIF und einen eigenständigen HTML-Player.

Das ist eine Werkbank und kein Konverter. Das Dokument ist eine Folge von Zeichenrastern mit je einer Verzögerung, und es gibt vier Wege, es zu füllen – ein Video oder GIF, das Zeichnen der Einzelbilder von Hand mit dem vorherigen durchscheinend, das Bewegen eines Banners oder einen der prozeduralen Effekte – und vier Wege, es herauszubekommen, darunter ein echtes animiertes GIF und eine einzelne HTML-Datei, die es ganz ohne Netz abspielt.

🔒 Läuft vollständig in Ihrem Browserasciiartanimationvideoterminal
Woher die Frames kommen

Andy Sloanes donut.c (2006): ein Torus mit Z-Buffer, schattiert nach der Oberflächennormale gegenüber einem festen Licht.

Derselbe Startwert liefert immer dieselben Frames, ein Ergebnis lässt sich also reproduzieren und identisch neu exportieren.

Frame 1 von 1

1 Frame, 0,1 s, etwa 7,5 kB im Speicher

Export
























Für MP4 oder WebM speichern Sie das GIF und geben es an GIF in Video weiter, das bereits mit WebCodecs kodiert und H.264 in MP4 sowie VP9 in WebM muxt. Hier einen zweiten Kodierer zu schreiben wäre eine schlechtere Kopie davon. Einen APNG-Export gibt es nicht: dafür braucht es die Chunks acTL/fcTL/fdAT über dem PNG-Schreiber, und die sind nicht gebaut.
Die Frames sind auf 600 begrenzt und das gesamte Raster auf 2,4 Millionen Zellen — etwa 230 MB Farbe auf einmal. In dieser Größe sind das 600 Frames. Darüber wird der Tab eines Handys ohne jede Meldung abgeschossen, und das ist schlimmer als eine Absage.
asciicast v2 ist JSON in Zeilen: ein Kopfobjekt, dann je Frame ein Array [Zeit, "o", Daten]. Die Zeiten sind absolute Sekunden ab dem Start und keine Verzögerungen je Frame; jeder Frame setzt den Cursor nach oben und löscht darunter, damit ein kurzer Frame nicht den Rest eines langen stehen lässt; und die Zeilen enden mit CRLF, denn ein nacktes Zeilenende in roher Terminalausgabe erzeugt die bekannte Treppe. Hier nach der veröffentlichten Spezifikation umgesetzt.
Framezahl mal Rastergröße ist, wohin der ganze Speicher geht, also sind beide begrenzt und die Grenze wird genannt statt entdeckt. Die Umwandlung läuft in einem Worker mit einem Abbruch, der die Schleife erreicht, ein Auftrag über 300 Frames friert also weder den Tab ein noch läuft er weiter, nachdem Sie ihn gestoppt haben.

So funktioniert es

  1. Beobachten Sie das Bildbudget, nicht die Dateigröße

    Alles hier kostet Bilder mal Rasterzellen, und die Seite druckt, wie viele Bilder in die gewählte Breite passen. Die Ausgabe von 80 auf 160 Zeichen zu verbreitern viertelt die Zahl der Bilder, die Sie halten können. Die Obergrenze gibt es, weil die Alternative ein Handy-Tab ist, der ganz ohne Meldung beendet wird.

  2. Legen Sie die Verzögerungen vor dem Export fest

    Jedes Bild trägt seine eigene Verzögerung, und jeder Exporter liest sie, was Sie also in der Vorschau sehen, ist das, was GIF und Asciicast tun werden. Stellen Sie ein Bild ein und drücken Sie „auf jedes Bild anwenden“ für eine konstante Rate, oder lassen Sie einzelne Bilder länger, um auf einer Pose zu verharren.

  3. Wählen Sie den Export nach dem Ziel

    asciicast v2 für asciinema und für jeden, der es in einem Terminal abspielt. GIF für ein Chatfenster oder eine README. Der HTML-Player für ein Embed – es ist eine Datei mit den Bildern darin und ohne CDN. Reine Textbilder, wenn etwas anderes sie lesen wird.

Häufige Fragen

Was ist asciicast v2, und warum nicht einfach ein GIF?

Es ist das Format, in dem asciinema Terminals aufzeichnet – JSON-Zeilen, ein Header-Objekt und dann ein [Zeit, "o", Daten]-Array pro Bild –, und es bleibt *Text*, es hat also ein paar Kilobyte, wo das GIF ein paar Megabyte hat, und der Betrachter kann auswählen und kopieren, was auf dem Bildschirm steht. Hier nach der veröffentlichten Spezifikation implementiert. Ein GIF ist die richtige Antwort, wenn das Ziel keine Terminalaufzeichnung abspielen kann, und das sind die meisten Orte.

Die prozeduralen Effekte – haben Sie die geschrieben?

Den Code ja; die Techniken sind älter und werden auf der Seite genannt. Der rotierende Torus ist Andy Sloanes donut.c-Methode – ein Z-Puffer, damit die nahe Fläche gewinnt, und die Flächennormale, skalar mit einer festen Lichtquelle multipliziert, um die Rampe zu indizieren –, und das Feuer ist der Demoszene-Effekt, den Fabien Sanglard dokumentiert hat. Plasma, der Regen und der Sinus-Scroller sind Folklore ohne einzelnen Urheber und werden als solche benannt. Jeder Effekt ist eine reine Funktion von Bildnummer und Seed, derselbe Seed ergibt also immer dieselbe Animation.

Kann ich eine lange Umwandlung abbrechen?

Ja, und sie hört tatsächlich auf. Die Umwandlung läuft in einem Worker, der zwischen den Bildern nachsieht, Abbrechen beendet also die Arbeit, statt das Ergebnis zu verstecken – was auf einem Handy zählt, wo der Unterschied eine weitere Minute laufender Lüfter ist.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.

Bild in ASCII

Image to ASCII

Wandelt ein Bild in ASCII- oder ANSI-farbige Zeichen um, mit wählbarer Breite und Zeichensatz.

Läuft vollständig in Ihrem Browser

Braille-Kunst

Braille Art

Macht aus einem Foto Unicode-Braillezellen – 2 × 4 Punkte je Zeichen, achtmal die Auflösung einer Helligkeitsrampe – mit Dithering nach Wahl.

Läuft vollständig in Ihrem Browser

Textkunst als Bild

Text Art to Image

Rendert jede Monospace-Textkunst als PNG oder SVG mit gewählter Schrift, Zellgröße, Farbe, Hintergrund und optionaler Transparenz, damit sie das Posten dort übersteht, wo Monospace nicht erhalten bleibt.

Läuft vollständig in Ihrem Browser

Video in GIF

Video to GIF

Macht aus einem Clip ein animiertes GIF oder WebP, mit Bildrate, Größe und Palettensteuerung.

Läuft vollständig in Ihrem Browser

Tageshoroskop nach Tierzeichen und Sternzeichen

Daily Fortune by Zodiac Animal & Star Sign

Setzt die Tageslesung für ein Tierzeichen oder Sternzeichen aus dem 일진 des Tages und dem überlieferten Temperament des Zeichens zusammen, nach koreanischer Tradition. Aus dem Datum gesät, also den ganzen Tag gleich – Neuladen würfelt nicht neu.

Läuft vollständig in Ihrem Browser

Tierkreis-Partnerhoroskop (궁합)

Zodiac Compatibility (궁합)

Zwei Geburtsdaten ergeben zwei Tierzeichen und zwei Tagesstämme. Berichtet die genaue Beziehung zwischen ihnen – 삼합, 육합, 충, 원진, 형, 파, 해 – und die Fünf-Elemente-Beziehung der Tagesstämme, jeweils mit dem überlieferten Urteil der koreanischen Tradition.

Läuft vollständig in Ihrem Browser