Name: Rendern und speichern

In diesem Teil soll es darum gehen, eure Bilder richtig zu rendern und zu speichern. Wir werden sehen, das Größe manchmal doch eine Rolle spielt… ;)

Schritt 1

Ihr kopiert den folgenden code in ein neues CFA dokument:
startshape anfang

rule anfang {
6* {r 60} {
80 * {x 0.8 s 0.97 r 5} quader{s 0.2 r 15}
}
}

rule quader {
10 * {x 1 s 0.95 flip 50 } {
10 * {y 1 s 0.99 r -5 b 0.02} CIRCLE{}
}
}

Das sollte dabei rauskommen:

Wenn ihr das Bild jetzt rendert und dann auf “Save Image” klickt, wird es mit der ganz rechts angegebenen Größe gespeichert:

Und irgendwie ist das langweilig, oder? Was da alles verloren geht, wenn man ein Bild, welches eigentlich aus (immerhin) 48000 Kreisen besteht, auf 500×500 pixel quetscht…
Das heisst, wir müssen was dagegen tun. Oben in dem Menü von Context Free gibt es einen Bereich “Render” und da drunter finden wir “Render to size…”
Wenn wir den jetzt mal auswählen, öffnet sich folgender Dialog:

Hier können wir die Größe angeben, auf die dieses Bild gerendert (gezeichnet) werden soll.
Zudem könnten wir noch angeben, wie große das kleinste Element sein soll (Dieses Feld wird erst wichtig, wenn man ein Bild als Vektorgrafik (*.svg) speichern möchte), ob die Bildgröße an den Render angepasst werden soll (Wenn es zum beispiel breiter als höher ist, wird es bei “variable” auf 5000 x 5000 pixel breite angepasst und die höhe ist dann vielleicht nur 3000 px, damit alles angezeigt wird)
und ob das gerenderte Bild (skaliert) im Programm angezeigt werden soll oder nicht (“don’t display final result” checkbox).

Wir widmen uns erstmal der Bildgröße und lassen die anderen Optionen so wie sie sind. 5000×5000 pixel klingt ganz gut. Also wählen wir OK und warten dann, bis das Bild fertig gerendert ist.
Wenn wir jetzt “Save Image” auswählen und das Bild speichern wird es als 5000×5000 pixel großes Bild gespeichert. Jetzt öffnen wir es mit irgendeinem Bildbetrachter und wenn wir es auf die Originalgröße skalieren, erkennen wir das es aus vielen (48000) einzelnen Kreisen besteht.
Bildausschnitt:

Das ist einer der großen Vorteile des Programms. Man kann die Ausgabegröße selber bestimmen und bei mir schafft das Programm es immerhin bis 20000×20000 px ein Bild zu rendern.
(ACHTUNG: Bei solch großen Bildern muss man die direkte Ausgabe ausschalten. “Don’t display final result” anhaken. Das Bild wird dann nicht dargestellt, aber wenn oben in der Statuszeile “Done!” steht, kann man es mittels “Save Image” speichern)

Ein ganz wichtiger Punkt ist noch der folgende. Allgemein ist ja bekannt, das PNG Transparenz unterstützt und warum soll man kompliziert den weissen Hintergrund aus unserem Bild rausschneiden, wenn wir es auch als transparentes PNG speichern können?
Genau, also sagen wir Context Free direkt, dass der Hintergrund Transparent sein soll. Das kann man mit einer einzelnen Zeile Code auch machen:
background { a -1 }

einfach unter das startshape anfang schreiben und schon weiss das Programm, das der Hintergrund transparent sein soll. (Siehe auch das Tutorial über Farben)

Schritt 2
Nachdem wir nun wissen, wie man pixelgrafiken (*.jpg oder *.png) erstellt, schauen wir uns schnell nochmal die Vektorgrafiken an.
Das Prinzip funktioniert genauso wie bei Schritt 1 beschrieben, nur dieses mal wählen wir beim speichern den Dateityp *.svg aus.

Die gespeicherte Datei kann man jetzt mit einem beliebigen Vektorprogramm (Illustrator, Inkscape, etc…) laden und weiterverarbeiten. Wobei man aufpassen sollte, für manche Programme können 48000 einzelne shapes schon anstrengend sein zu laden.
Vielleicht sollte man lieber einfachere Formen, als die in diesem Tutorial verwendete, für die Vektorweiterverarbeitung nutzen. ;)

P.S. das bei Vektorgrafiken die Dimensionen (x*y pixel) egal sind, brauch ich ja nicht extra betonen, oder? Gut.

Dann schliess ich hiermit dieses Tutorial ab. Und ja, es gibt auch die Möglichkeit den Aufbau einer Grafik als Video zu speichern, aber das Thema werde ich in einem anderen Tutorial ansprechen.

zurück zu den Tutorials