So, verehrte Lesegemeinde, nach drei Wochen Verschwundensein geht es (hoffentlich) wieder weiter.
Nachdem ich ja kurz vor Weihnachten als tollkühnen Überraschungscoup einen Export nach
PBM, der
Portable Bit Map, vorgestellt hatte, gedachte ich, das Jahr mit einem phänomenalen Donnerschlag, quasi als informationstechnologischen Äquivalent zum knallbunten Silvesterraketenreigen, beginnen zu lassen, und auch die restlichen und zugleich ursprünglichen Mitglieder der Netpbm-Familie, nämlich
Portable Gray Map und
Portable Pixel Map, zum Export anzubieten. Doch, ach, Träume sind Schäume! Aus der angedachten schnellen Kopie des
PBM-Codes erwuchsen ein Sumpf, ein Labyrinth, ein Bermuda-Siebzehneck sowie ein Schwarzes Loch. Irgendwo dazwischen bin ich dann verschwunden

.
- Da PBM, PGM und PPM die Familie PNM, die Portable Any Map, bilden, entschloß ich mich nach einigen Versuchen, diese als gemeinsame Exportoption anzubieten und das Programm die jeweils geeignete Formatversion auswählen lassen. Doch dann wurden Exportdialoggestaltung, Export-Programm-Code und das Zusammenspiel der beiden immer komplexer.
- Nehmen wir PBM als Beispiel. Das Format speichert nur Schwarz-Weiß-Bilder. Bislang funktionierte der Export so (übrigens genau wie bei MacPaint), daß nur Bilder mit 1 Bit Farbtiefe, die (in Geos) immer schwarz-weiß sind, exportiert wurden.
- Doch muß das so beschränkt sein? Es gibt doch auch Bilder mit 8 oder 24 Bit Farbtiefe, die auch Schwarz-Weiß-Bilder sind! Warum sollen die sich nicht als PBM speichern lassen?
- Also gut, dann werden eben Routinen geschrieben, die das zu exportierende Bild als schwarz-weiß, grau oder farbig klassifizieren. Dann kann Bildinfos unabhängig von der Farbtiefe das geeignete Format wählen.
- Mmmh, aber vielleicht will ich mein Schwarz-Weiß-Bild mit 24 Bit Farbtiefe gar nicht als PBM speichern, sondern mir wären PGM oder PPM viel lieber?! Dann also doch kein Automatismus, sondern eine Vorgabe durch den Nutzer? Aber will der das immer entscheiden? Oder strauchelt er zwischen den Formatvarianten gerade so wie ich? Also wie nun? Und wie soll sich das möglichst klar im Dialog zeigen?
- Und die Transparenz! Die PNM-Formate unterstützen keine Tranparenzen. Also muß für Bilder mit Transparenzen bestimmt werden, welche Farbe an den unsichtbaren Stellen ersatzweise eingesetzt werden soll. Doch was, wenn der Nutzer als Ersatzfarbe für einen PBM-Export einen Grauton oder gar einen bunten wählt? Dann ist das Bild zwar vielleicht schwarz-weiß, aber durch die Ersatzfarbe wird es zum Farbbild. Dann kann es nur noch als PPM gespeichert werden.
- Doch wie prüfe ich ein Bild auf Transparenzen? In R-Basic kann ich dafür die Bitmap-Eigenschaft BF_Mask abfragen. Doch es könnte doch sein, daß zwar eine Transparenzmaske vorhanden, aber kein einziges Pixel im Bild auf transparent gesetzt ist! Dann käme auch nicht die bunte Ersatzfarbe zum Zuge und das Bild könnte doch als PBM gespeichert werden! Doch um diesen Fall zu prüfen, müßte ich vor dem Speichern erst jede Bildzeile einlesen und die Transparenzdaten prüfen, dann das Exportformat festlegen und danach wieder alle Bildzeilen einlesen und ins Exportformat wandeln. Das kann unangenehm lange dauern.
- Es war ein Graus! Irgendwann wünschte ich mir sehnlichst, die Transparenz möge sich unsichtbar machen und einfach verschwinden! Ich verdammte (fast) den Tag, an dem ich sie ins Programm geholt hatte!
- Und diese mühsame Familie wuchs auch noch! Es kamen halbseidene Cousins hinzu, die aufgrund einer vagen Ähnlichkeit in den Gesichtszügen adoptiert wurden! Es gibt nun auch das Format PFM, die Portable Float Map! Diese gibt's in Grau und in Farbe und beide verwenden für die Farbwerte keine Ganzzahlen, sondern Kommazahlen.
- Erfunden haben dieses neue Format andere, in diversen Untervarianten. Die am besten ins bestehende Konzept passende wird vom Netpbm-Team gnädig geduldet, aber ist keine offizielle Variante.
- Vom Aufbau her ähnelt PFM eher PAM, dem Nachfolger der PNM-Formate PBM, PGM und PPM. (Juchu, alle Kürzel in einem Satz untergebracht
!)
- Und zu PFM gibt es auch schon einen neuen Seitentrieb, nämlich PHM! Während nämlich PFM für jeden Farbkanal 32-Bit-Zahlen nutzt, begnügt sich die Portable Half Float Map mit 16 Bit.
Das war ein kurzer Blick auf die Mahlsteine, die sich anschickten, einen unschuldigen Programmierer zu Bit-Staub zu zerreiben. Vor diesem Schicksal bewahrten ich dann u.a. wohnliche Neugestaltungsaufgaben, die selten so willkommen erschienen. Über eine Woche lang erholte ich mich mit einer Bohrmaschine und nach Abschluß der Therapie bin ich dieses Wochenende ganz vorsichtig nur ein bißchen rückfällig geworden. Um den wütend kreischenden
PNM-Code habe ich einen weiten Bogen getippt und mich mit unschuldigen Themen beschäftigt. Das ist wie Spielen mit Plüschtieren ... oder Gremlins?