gs.png

Auf Kommando animiert

Netpbm-Tools und Shell-Skripte

01.09.2002
Grafikbearbeitung muss nicht zwangsläufig mit der Maus erfolgen. Mit den Filtern des Netpbm-Pakets und "Verwandten" lassen sich Arbeitsschritte per Shell-Skript automatisieren.

Pixelbasierte Grafikformate gab es schon vor Jahren zuhauf. Entsprechend oft wurden und werden passende Konvertierungsprogramme benötigt. Will man diese Aufgabe nach Unix-Art mit einzelnen Filterprogrammen für die Kommandozeile lösen, so müsste man für n Grafikformate genau (n-1)@L: *n Filter schreiben. Nimmt man stattdessen ein Zwischenformat hinzu, so braucht es nur noch n Filter, die von den verschiedenen Grafikformaten in das Zwischenformat konvertieren und weitere n, die vom Zwischenformat in die Grafikformate zurück wandeln.

Mit dieser Idee begann Jef Poskanzer 1989 seine Arbeit an den pbmtools. Bis 1994 kamen Schritt für Schritt neue Formate und Effektfilter für das Zwischenformat zur Sammlung dazu, die inzwischen unter dem Namen netpbm firmiert. Seit dem Jahr 2000 geht die Netpbm-Entwicklung wieder aktiv voran; das Projekt ist auf Sourceforge beheimatet.

Bit, Grey oder Pix?

Genaugenommen gibt es nicht nur eines, sondern drei Zwischenformate in Netpbm: "Portable Bitmap" (PBM), "Portable Greymap" (PGM) und "Portable Pixmap" (PPM). Das PBM-Format kennt nur gesetzte (schwarze) und nicht gesetzte (weiße) Pixel und kommt deshalb mit einem Bit pro Pixel aus. Das PGM-Format kann nur Graustufen speichern und verwendet dafür im Normalfall acht Bit pro Pixel (256 Graustufen). Das PPM-Format sieht 24 Bit pro Pixel vor (jeweils acht Bit für die Grundfarben Rot, Grün und Blau), was 16,7 Millionen Farben ("True Color") ergibt. Ist irgendeins der drei Zwischenformate gemeint, spricht man von "Portable Anymap" (PNM).

Filter, die von Fremdformaten ins Zwischenformat konvertieren, heißen etwa tgatoppm, giftopnm oder g3topbm. Für die umgekehrte Richtung sind zum Beispiel ppmtogif, pnmtotiff oder pnmtops zuständig. Dazu kommen Filter, die ausschließlich auf den Zwischenformaten arbeiten. So wandelt ppmtopgm in Graustufen um, pnmsmooth rechnet unscharf, und pgmnorm normiert Graustufen.

Quellmaterial

Für die Bildbearbeitung braucht es natürlich Ausgangsmaterial, das es kommandozeilengesteuert zu verwursten gilt. Auch die Erzeugung dieser Bilder kann der Rechner erledigen, und zwar mit dem freien Raytracer Povray. Die Szenenbeschreibungsdatei glass.pov aus Listing 1 veranlasst das Programm dazu, ein Bild mit fünf gläsernen Kugeln vor einem karierten Hintergrund zu berechnen. Mit der clock-Variable kann zusätzlich der Hintergrund für eine simple Animation bewegt werden.

Listing 1

glass.pov

// Glaskugel-Animation
// (C) 7/2002 Christian Perle (POVaddict) / LinuxUser
// Kamera
camera {
  location <0, 0, -10>
  direction <0, 0, 4>
  look_at <0, 0, 0>
}
// Beleuchtung
light_source { <10, 10, -10> color rgb<1, 1, 1> }
// Deklaration der Glaskugel
#declare GKugel = sphere {
  <0, 0, 0>, 0.5
  scale <1, 1, 0.5>
  finish { phong 0.7 reflection 0.1 refraction 1 ior 1.33 }
}
// Fuenf farbige Glaskugeln
object {
  GKugel
  translate <-1, -0.6, 0>
  pigment { rgbf<1, 0.7, 0.7, 0.7> }
}
object {
  GKugel
  translate <0, 0, 0>
  pigment { rgbf<.7, 1, .7, .7> }
}
object {
  GKugel
  translate <1, 0.6, 0>
  pigment { rgbf<0.7, 0.7, 1, 0.7> }
}
object {
  GKugel
  translate <1, -0.6, 0>
  pigment { rgbf<1, 0.7, 1, 0.7> }
}
object {
  GKugel
  translate <-1, 0.6, 0>
  pigment { rgbf<0.7, 1, 1, 0.7> }
}
// Schachbrettmuster im Hintergrund
plane {
  <0, 0, -1>, -4
  pigment {
    checker color rgb<0.5, 0.5, 0.5>, rgb<1, 1, 1>
    translate <-clock, -clock, 0>
    scale 0.4
  }
  finish { ambient 0.4 }
}

Diese Datei werfen wir Povray in der Version 3.0 oder 3.1. zum Fraß vor. Das Programm soll ein 320 mal 240 Pixel großes Bild erzeugen, Anti-Aliasing verwenden und praktischerweise gleich das PPM-Format zur Ausgabe verwenden:

povray +i glass.pov +w320 +h240 +a0.1 +fp +v

Abbildung 1 zeigt das Ergebnis, das in der Datei glass.ppm gespeichert ist.

Abbildung 1: Glaskugeln als Testbild

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • lesspipe
    Das Programm less als komfortablen Ersatz für more werden die Meisten schon kennen. Mit einem Skript ausgestattet kann es mehr als bloße Textdateien anzeigen.
  • Frontends für Povray
    Mit Povray lassen sich wunderschöne virtuelle Welten erschaffen. Das richtige Frontend erleichtert die Bedienung, beschleunigt die Entwicklung und erhöht den Spaßfaktor.
  • Gimp 2.6.5 und Netpbm2gimp 1.0
    Während Gimp 2.6.5 ausschließlich Fehler beseitigt, will die Version 1.0 von Netpbm2Gimp auf einfachem Wege Plugins für die Grafiksoftware erstellen.
  • Einführung in Tcl/Tk, Teil 2
    Nachdem Sie im ersten Teil dieses Programmierkurses einen ersten Einblick in den Umgang mit Tcl/Tk gewinnen konnten, werden Sie diesmal tiefer in die Strukturen von Tcl eintauchen. Die dabei gewonnenen Fähigkeiten können Sie dazu verwenden, Kommandozeilenprogrammen eine intuitivere, auf Ihre persönlichen Bedürfnisse zugeschnittene Benutzerschnittstelle zu spendieren.
  • Shell-Tipps
    Alte (Unix-) Hasen lieben sie, Linux-Ein- und Aufsteiger stehen ihr oft mindestens skeptisch bis ablehnend gegenüber: der Shell. Wie eine Muschelschale legt sie sich um die Perle (den Linux-Kernel) und regelt alle Kommunikation mit ihm. Dieses für viele unbekannte Wesen wollen wir in unserer neuen Reihe näher beleuchten und versuchen, Vorurteile abzubauen, sowie Ihnen einen Einblick in die Möglichkeiten dieser mächtigen Anwenderschnittstelle geben. fortgeschrittenere Shell-User seien an dieser Stelle aufgefordert, ihre Tipps und Tricks an uns zu schicken, so dass wir sie in dieser Serie weiter verbreiten können.
Kommentare

Infos zur Publikation

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...