image image


image

Generative Art: Hochauflösende Bilder abspeichern

Für mein Projekt »Generative Art zwischen zwei Pappedeckel«, mit dem ich ja dem derzeit grassierenden (aber glücklicherweise schon langsam wieder abklingenden) NFT-Hype den Stinkefinger zeigen will, stehe ich bekanntlich ja vor der Herausforderung, die erzeugten Bilder möglichst hochauflösend (respektive auflösungsunabhängig) abzuspeichern. Bei den von mir verwendeten Frameworks bekomme ich das bei DrawBot geschenkt. Möchte ich aber die »Mac-only-Falle« verlassen (zum Beispiel mit Processing(.py/Py5) oder TigerJython), sind doch ein paar zusätzliche Schritte notwendig.

Damit ich nicht jedesmal googeln DuckDuckGo danach befragen muß, habe ich die Links hier einmal aufgeschrieben. Für Processing gibt es (mindestens) zwei passende Bibliotheken, einmal die Library für den SVG-Export, und dann die ähnliche Library für den PDF-Export. Beide schreiben auflösungsunabhängige 2D-Dateien direkt aus dem Sketch heraus. Sie funktionieren auch mit Processing.py und Py5. Für Py5 habe ich das mal getestet:

from processing.pdf import *
from random import randint

WIDTH = 940
HEIGHT = 315

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)]

def setup():
    size(WIDTH, HEIGHT)
    window_move(1400, 30)
    window_title("Random Circles High Resolution")
    background(230, 226, 204)
    stroke_weight(1)
    no_loop()
    begin_record(PDF, "randcirc.pdf")

def draw():
    for _ in range(200):
        x = randint(50, width - 50)
        y = randint(50, height - 50)
        stroke(0, 150)
        fill(malewitsch1[(randint(0, len(malewitsch1) - 1))], 255)
        circle(x, y, 10)
        no_stroke()
        fill(malewitsch1[(randint(0, len(malewitsch1) - 1))], 100)
        radius = randint(7, 35)
        circle(x, y, 2*radius)
    end_record()
    print("I did it, Babe!")

Wie der Screenshot unten zeigt, funktioniert das ausgezeichnet. Die abgespeicherte PDF-Datei kann ich im Viewer meines Vertrauens (Hint: Er ist nicht von Adobe) ohne Qualitätsverlust beliebig vergrößern:

image

Dabei wird die Hintergrundfarbe auf transparent gesetzt, für die Ausgabe auf einem Drucker oder sonstwie zwischen zwei Pappedeckel sicher ein nützliches Feature.

Und TigerJython? Die Dokumentation zu TigerJython ist leider etwas spärlich und speist sich in der Regel aus wenigen Quellen aus dem Umfeld der ETH Zürich (es sind fast immer die gleichen Personen in unterschiedlicher Zusammensetzung). Und sie funktioniert zwar sehr gut ausgedruckt als PDF, aber weniger gut online (aber da ich selber auch nicht gerade der »King of Responsive Design« bin, halte ich mich hier mit Gemecker zurück). Aber trotz alledem, in der meiner Meinung nach besten Doku »Programmierkonzepte« von Jarka Arnold, Tobias Kohn und Aegidius Plüss finden sich zwei Hinweise auf die Erzeugung hochauflösender Graphiken (mit der Umleitung des Druckbefehls) über den Befehl printerPlot(). Und zwar hier für das Turtle-Modul und hier für die Bibliothek GPanel – faktisch sind beide identisch. Damit sollen sich auch hochauflösende EPS-Dateien erzeugen lassen. Ich werde das in den nächsten Tagen ebenfalls testen und dann berichten. 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