Export
Wir haben nun schon einige Funktionen in Processing kennen gelernt und schon einige erfolgreiche Sketche programmiert. Nun stellt sich die Frage, wie man die Sketche exportieren kann. Dazu gibt es unterschiedliche Methoden.
Windowshot: save()
Die Funktion save() speichert einen Screenshot des Ausgabefensters. Durch das Anhängen einer Dateiendung lässt sich das Dateiformat definieren: .tif, .tga, . jpg, und .png (der Default Format ist ein TIFF). Die gerenderten Dateien werden in den Sketch-Ordner gespeichert.
Diese Funktion lässt sich hervorragend mit keyPressed() kombinieren.
void keyPressed(){ if(key == 's'){ save("screenshot.jpg"); } }
Wenn also eine Taste gedrückt wird, wird die Funktion keyPressed() aufgerufen. Die Funktion überprüft, welche Taste gedrückt wurde und falls es sich um die Taste „S“ handelt, wird der Anweisungsblock ausgeführt – in unserem Fall wird save() aufgerufen und ein Screenshot des Ausgabefensters erzeugt.
Bildsequenz: saveFrame()
Mit der Methode saveFrame() lassen sich durchnummerierte Bildsequenzen aufrufen. Sie muss lediglich im draw()-Loop aufgerufen werden. Um diese Bilderreihe anschließend zu einem Video zusammenzufügen liefert Processing das Movie Maker Tool mit. Es kann im Menüpunkt „Tools“ gefunden werden.
Wie eine Animation entsteht und einen historischen Überblick zum Thema Film findest du in den Basics auf der Unterseite Fotografie, Film und Animation.
PDFs
Manchmal kann es sinnvoll sein, das mit Processing erzeugte Bild in Print-Projekten oder mit Vektor-Zeichenprogrammen zu verwenden. In diesen Fällen möchte man keine Bitmap- sondern Vektordaten exportieren. Das lässt sich durch das Aufzeichnen von PDF-Daten umsetzen.
Um aus Processing PDFs zu exportieren muss zu Beginn des Sketches die dafür zuständige Library importiert werden:
import processing.pdf.*;
Die PDF-Library gehört zum Kern des Processing-Pakets und steht somit sofort zur Verfügung ohne das die nötige Library zuvor installiert werden muss. Daher kann sie durch dem import-Befehl eingebunden werden.
Nun kann man Processing mitteilen, dass die Ausgabe nicht in das Ausgabefenster, sondern in eine PDF-Datei erfolgen soll. Da wir also das Ausgabefenster nicht brauchen, wird dies in der size()-Funktion umgesetzt:
size(800,600, PDF, „dateiname.pdf“);
Eine weitere Möglichkeit ist, die Aufzeichnung durch Befehle zu starten und zu beenden:
beginRecord();
Nachdem alle aufzuzeichnenden Formen gezeichnet sind wird die Aufnahme mit endRecord() beendet und die PDF-Datei geschrieben. Unbedingt muss am Ende die Funktion exit() aufgerufen werden. Ansonsten würde der der Sketch nicht enden und das PDF nicht korrekt erstellt, wenn man die Ausführung des Sketches manuel abbricht.
endRecord(); exit();
Stand-alone Versionen von Sketchen
Es kann sinnvoll sein den Processing Sketch als als Stand-alone Anwendung zu exportieren. Das macht vor allem dann Sinn, wenn Processing auf dem ausführenden Computer nicht installiert ist.
Unter dem Menüpunkt Datei/Exportieren… lässt sich eine App erstellen. Im darauffolgenden Dialogfenster lässt sich einstellen, für welches Betriebssystem die App erstellt werden soll – Windows, OSX oder Linux – ob diese im Fullscreen-Modus laufen soll und ob Java eingebettet werden soll. Die dadurch enstehende App lässt sich wie jede andere auch mit einem Doppelklick öffnen.
Als empfehlung gilt hier, die App für das Betriebssystem zu exportieren auf dem es erstellt worden ist, da es ansonsten zu Problemen bei der Ausführung kommen kann.
Libraries
Processing bietet eine große Anzahl an Libraries und ermöglicht auch den Zugang zu den Java-Libraries. Eine Library bietet zusätzliche Befehle und Funktionen, die von anderen ProgrammiererInnen zur Verfügung gestellt wurden. Die meisten Libraries müssen über das Menü Sketch/Library importieren… installiert werden.
Einige nützliche Libraries:
Name | Funktion |
---|---|
Video | Video |
Sound | Sound |
Network | über das Netzwerk kommunizieren |
controlP5 | ermöglicht ein besseres User Interface, Sliders etc. |
Leap Motion Controller | dazu wird ein Leap Motion Controller benötigt, dieser ermöglicht eine externe Hardware Gestenerkennung |
minim | Sound |
punktiert | Particle System |
PeasyCam | 3D Kamera |
Geomerative | Generative 2D Geometrie |
AmbientLightSensor | steuert den MacBook Lichtsensor an |
Die Processing-Website bietet eine gute Übersicht über die verschiedenen Libraries.