1.12 Exporte aus Processing

12.1 Windowshots: 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 sind möglich. Wird keine Dateiendung angegeben, so wird ein TIFF erstellt. Die Dateien werden in den Sketch-Ordner gespeichert.

Beispiel 1-15


float offsetX = 0.0;
float offsetY = 3.0;
float radius = 15.0;

void setup(){
   size(800,600); 
   noStroke();
}

void draw() {
  fill(255, 10);
  rect(0,0,width, height);
  offsetX = offsetX + .01;
  offsetY = offsetY + .05;
  float x = noise(offsetX) * width;
  float y = noise(offsetY) * height;
  fill(0);
  ellipse(x, y,radius,radius);
}

void keyPressed(){
   if(key == 's'){
      save("screenshot.jpg");
   }
}

12.2 Bildsequenzen: saveFrame()

Mit der Funktion saveFrame() lassen sich nummerierte Bildsequenzen speichern. Die Funktion muss dafür im draw()-loop aufgerufen werden:

Beispiel 1-16


float xnoise = 0;
int stepSize = 5;
float modulator = 0.1;  

void setup(){
  size(800,800, PDF);
}

void draw(){
  xnoise = 0;
  modulator += 1;
  for (int y = 0; y < height; y+= stepSize){
    float ynoise = 0;
    for (int x = 0; x < width; x+=stepSize){
       float wert = map(noise(xnoise,ynoise),0,1,0,255);
       wert = wert * sin(x*y*modulator/10);
       fill(wert);
       rect(x,y, x+stepSize,y+stepSize);
       ynoise += 0.1;
    }
    xnoise +=0.1;
  }
  saveFrame();
}

12.3 Videos erstellen

Processing kommt mit einem Movie Maker Tool, das genutzt werden kann, um die erstellten Bildsequenzen zu Filmclips zu verarbeiten. Es befindet sich im Menü „Tools“.

12.4 PDFs exportieren

Möchte man beispielsweise generative Gestaltung in Print-Projekten oder Vektor-Zeichenprogrammen wie Illustrator weiterverwenden, so kann es sinnvoll sein, nicht Bitmap- sondern Vektordaten aus Processing zu exportieren. Dies lässt sich durch das „mitschneiden“ von PDF-Daten bewerkstelligen.

Um aus Processing PDFs zu exportieren muss zu Beginn des Sketches die dafür zuständige Library importiert werden:


import processing.pdf.*;

Libraries beinhalten zusätzliche Befehle und Funktionen, die die Funktionsweise von Processing erweitern. Normalerweise müssen diese Libraries über das Menü Sketch/Library importieren… zunächst installiert werden (für detaillierte Informationen hierzu siehe Einheit 2). Da jedoch die PDF-Library zum Kern des Processing-Pakets gehört, steht sie sofort zur Verfügung, sie muss lediglich durch durch dem import-Befehl eingebunden werden.

Man kann Processing anschließend mitteilen, dass die Ausgabe nicht in das Grafikfenster, sondern in eine PDF-Datei erfolgen soll. Dies geschieht mittels der size()-Funktion:


size(800,600, PDF, „dateiname.pdf“);


import processing.pdf.*;

void setup() {
  size(400, 400, PDF, "filename.pdf");
}

void draw() {
  // Draw something good here
  line(0, 0, width/2, height);

  // Exit the program 
  println("Finished.");
  exit();
}

Die zweite 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 Sketch nicht enden bzw. das PDF nicht korrekt erstellt werden, wenn man die Ausführung des Sketches manuel abbricht.


endRecord(); 
exit();

Beispiel:


import processing.pdf.*;

void setup() {
  size(400, 400);
  noLoop();
  beginRecord(PDF, "filename.pdf"); 
}

void draw() {
  // Draw something good here
  line(0, 0, width/2, height);

  endRecord();
}

12.5 Stand-alone Versionen von Sketches

Ein Sketch kann aus Processing als Stand-alone Anwendung exportiert werden. Processing selbst muss dann nicht mehr auf dem ausführenden Computer installiert sein und die App lässt sich wie jede andere auch mit einem Doppelklick öffnen. Unter dem Menüpunkt Datei/Exportieren… lässt sich eine App erstellen. Im folgenden Dialogfenster lässt sich einstellen, für welches Betriebssystem (Windows, OSX, Linux) die App erstellt werden soll, ob die App im fullscreen-Modus laufen soll, ob Java eingebettet werden soll.

Es wird empfohlen, die App für das Betriebssystem zu exportieren, auf dem sie in Processing erstellt wurde, da es ansonsten mitunter zu Problemen bei der Ausführung kommen kann.