image image


image

TigerJython: Hochauflösende Bilder abspeichern

Ich bin Euch noch den gestern versprochenen Test schuldig, wie man hochauflösende Bilder in TigerJython zum Beispiel für qualitative hochwertige Druckausgaben herstellt, wie sie zum Beispiel für mein Projekt »Generative Art zwischen zwei Pappedeckel« gefordert sind. Vorab: Es funktioniert ähnlich und ähnlich problemlos, wie gestern schon für Processing(.py/Py5) gezeigt.

Der große Unterschied ist, daß man die Druckausgabe nicht parallel zur Bildschirmanzeige erzeugt, sondern daß man sie davon separiert. Daher ist es sinnvoll, den eigentlichen Algorithums in eine Funktion auszulagern (den Gepflogenheiten der TigerJython-Dokumentation folgend habe ich sie doIt() genannt), die man dann zweimal aufruft:

from gpanel import *
from random import randint

WIDTH = 640
HEIGTH = 480

malewitsch1 = [Color(42, 40, 45), Color(54, 50, 80),
               Color(50, 80, 105), Color(160, 51, 46),
               Color(180, 144, 55), Color(140, 82, 48),
               Color(215, 158, 40)]

makeGPanel(Size(WIDTH, HEIGTH))
window(-10, 110, -10, 110)
windowPosition(1400, 80)
bgColor(Color(230, 226, 204))    # Packpapier
title("Random Circles")

def doIt():
    for _ in range(200):
        c = (malewitsch1[(randint(0, len(malewitsch1) - 1))])
        ca = makeColor(c, 0.9)       # alpha = 0.9
        setColor(ca)
        pos(randint(0, 100), randint(0, 100))
        fillCircle(1)
        c = (malewitsch1[(randint(0, len(malewitsch1) - 1))])
        ca = makeColor(c, 0.5)       # alpha = 0.5
        setColor(ca)
        fillCircle(randint(2, 7))
        # delay(50)

doIt()
printerPlot(doIt)

print("I did it, Babe!")

Die Funktion printerPlot() ruft den Druckdialog des Betriebssystems auf und dort kann man entscheiden, ob man seine Schöpfung direkt ausdruckt oder sie als PDF- oder Postscript-Datei abspeichert:

image

Die PDF-Datei ist ähnlich hochwertig wie bei Processing und sie kann – wie der Screenshot oben zeigt – nahezu verlustfrei beliebig hochskaliert werden. Auch hier ist die Hintergrundfarbe wieder auf transparent gesetzt (ich bin mir nicht sicher, ob das nicht sogar ein Feature des Betriebssystems oder des Druckertreibers ist).

image

Etwas enttäuscht war ich von der Ausgabe nach Postscript: Hier zeigten die Kreise bei der Vergrößerung doch deutlich sichtbare Stufen. Ein verlustfreies Hochskalieren – obwohl es bei Postscript-Dateien ebenfalls möglich sein sollte – funktioniert hier nicht. Aber auch hier bin ich mir nicht sicher, ob das am Druckertreiber liegt.

Aber egal, ob mit Processing (Processing.py/Py5) oder mit TigerJython, in beiden Fällen bekomme ich über den Umweg einer PDF-Datei hochaufgelöste Druckergebnisse erzeugt. Damit bin ich hochzufrieden, denn das macht sich auf Papier doch viel besser, als wenn man einfache Screenshots in sein Druckerzeugnis hinein montiert.

Und ich bin nicht auf ein Werkzeug festgelegt. Denn auch wenn Processing und TigerJython ziemlich ähnlich sind, es gibt Dinge, die TigerJython besser kann und Dinge, die in Processing einfacher zu programmieren sind. Außerdem machen beide Teile einfach Spaß, so daß es mir schwerfallen würde, mich für eines entscheiden zu müssen. Still digging!


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung

Diese Spalte wurde absichtlich leergelassen!


Werbung


image  image  image
image  image  image


image