Readme zum Modul "PNG for STELLA" --------------------------------- (c) 1995 Alexander Lorenz Version 1.03 (09.10.1995) ------------------------- - Minimale Žnderungen. Version 1.03 (05.10.1995) ------------------------- - Anpassungen an neue Dokumentverwaltung/Struktur von STELLA V2.4. Version 1.02 (20.09.1995) ------------------------- - Anpassungen an STELLA V2.3a. - Alle Speicheranforderungen und -freigaben werden nun via Stella-Funktionen get„tigt. - Modul komplett eingedeutscht :-) - Bug gefixed, wodurch Interlaced-Bilder verstmmelt eingelesen wurden. - Bug gefixed, der Textinformationen mit Nullbytes erzeugt hat. - STELLA-Variablenname des Moduls ge„ndert in "PNG_CONFIG". - Anpassungen an STELLA V2.2ž: - Fehlercodes werden jetzt vom Modul gesetzt, - Konfigurationsdialog herausgefhrt, - progress_bar-Abbruch wird als Fehlercode eingetragen. - Zeilenbuffergr”že auf das zu speichernde Format angepasst. - Bug gefixed, der beim Kodieren ber den Zeilenbuffer hinauslaž. - Das Schreiben von PNG-Files ist nun unter allen STELLA-Versionen m”glich. - Das Modul hat nun einen Konfigurationsdialog, in dem einige Optionen gesetzt werden k”nnen. Die Einstellungen werden STELLA bergeben; sie k”nnen mit der STELLA-Konfiguration gesichert werden. Kompressionsrate: je schlechter desto schneller. TC als Grauwert : Truecolor-Bilder werden als PNG-Graustufenbild gesichert. Paletten-Bilder k”nnen mittels den STELLA-Modulen in Graustufen gewandelt werden. Das PNG-Modul erkennt diese Bilder selbst„ndig. Interlaced : Bilder werden in sieben Ebenen gespeichert. N„heres hierzu siehe unten. mit Textinfos : die Textinformationen im Dialog "Dokument Information" werden in das PNG-File geschieben. - Truecolor-Bilder k”nnen nun im PNG-Graustufenformat geschrieben werden. Bei der Umrechnung von Farbe->Grauswert werden die Werte des Moduls "Graustufenberechnung" verwendet. Zus„tzlich setzt bzw. beachtet das Modul das Grauflag (doc->grey) in der Dokumentstruktur; wenn es gesetzt ist, erzeugt das Modul ein PNG-File im Graustufenformat. - Texte aus doc->info_text werden nun in das PNG-File geschrieben. Das Modul analysiert den Text auf folgende Schlsselw”rter, die fr PNGs genormt sind: - "Title" : kurzer Titel oder šberschrift des Bildes (eine Zeile) - "Author" : Name des Bild-Erzeugers - "Copyright" : Copyright Hinweis - "Description": Beschreibung des Bildes - "Software" : Software die zur Erzeugung des Bildes verwendet wurde - "Disclaimer" : Rechtlicher Hinweis - "Warning" : Warnung bzgl. des Bildinhaltes - "Source" : Verwendetes Ger„t zur Erzeugung des Bildes - "Comment" : Beliebiger Kommentar Ein Schlsselwort wird nur erkannt, wenn es allein in einer Zeile steht! - Code optimiert und berflssige Routinen entfernt, wodurch das Modul etwas kleiner wurde. - Monochrome Bilder werden nun vom Modul selbst VDI/PNG-konform gewandelt. - Bug gefixed, der das erste Pixel bei ungerader Bildbreite verschwinden liež. (nochmals sorry, Tommi :-)) - is_registered() wird nun korrekt aufgerufen (sorry, Tommi :-)) Unter ”ffentlichen STELLA-Versionen kann ein geladenes PNG-Bild nicht gespeichert werden. Version 1.00 (18.08.1995) ------------------------- - Bug in der Berechnung der korrekten Palettenwerte gefixed. - is_registered() wird nach dem Lesen aufgerufen, und doc->dont_save gesetzt, falls FALSE zurckgeliefert wird. - GAMMA-Korrektur-Infos werden weiterhin ignoriert. - Textinformationen in doc->info_text werden noch nicht geschrieben. - Interlaced-Bilder k”nnen nun auch geschrieben werden. Seltsamerweise verlieren die so gespeicherten Bilder erheblich an Qualit„t. Das Problem ist bisher leider noch nicht lokalisiert, weshalb von der Benutzung abgeraten wird! (Default: aus) - Interner Buffer fr Kompression/Dekompression von 8 auf 32KB erh”ht. Bringt beim Lesen und Schreiben je nach Bild/Bildtyp ca. 5-15% mehr Speed. Des weiteren werden die erzeugen Files kleiner (weniger IDAT/IEND). Eine weitere Erh”hung auf 48, 64 und 128KB brachten nicht mehr Speed. Bei kleineren Bildern (~30K) wurde die Dekomprimierung sogar langsamer. - Truecolor-PNGs (auch mit Alpha-Channel) werden jetzt vom Modul beim Laden selbst in das Standardformat gewandelt, ohne 'set_line'-Aufrufe (sorry, Tommi :-)). Bringt ca. 5-10% mehr Speed. Version 0.99 (15.08.1995) ------------------------- - Kleine Anpassung an STELLA 2.2: progress_bar wird jetzt mit NULL-Pointer gefttert. - Paletten- und Truecolor-Bilder k”nnen nun auch im PNG-Format geschrieben werden. - RGB-Daten werden beim Schreiben direkt aus der DOC-Struktur entnommen (bringt ca. 10% mehr Speed). - GAMMA-Korrektur-Infos werden weder beim Lesen noch beim Schreiben beachtet. - Textinformationen in der DOC-Struktur werden noch nicht in das PNG-File bernommen. Version 0.92 (12.08.1995) ------------------------- - Dekomprimierung generell etwas beschleunigt. - Modul um ca. 5K kleiner bekommen. - Zus„tzliche 68020er-Version erstellt. Ist im allgemeinen ca. 10-15% schneller, bei einigen PNGs erstaunlicherweise etwa 10% langsamer... - Chunks 'bKGD' (background) und 'tRNS' (transparency) werden jetzt ausgewertet. - GAMMA-Korrekturen werden noch immer nicht bercksichtigt. - Bugfix: PNGs, die keine waren, wurden zwar erkannt, aber das Filehandle wurde nicht geschlossen. Version 0.91 (09.08.1995) ------------------------- - RGB-Daten werden jetzt fr STELLA 2.1ž nach BGR gewandelt, und in den unteren 3 Bytes des 'long' von 'set_line' bergeben. - Alpha-Channel, Transparent-Infos und GAMMA-Korrekturen werden z.Zt. noch ignoriert. - tEXt-Chunks werden jetzt gesammelt unter 'info_text' der DOC-Struktur bergeben. - Monochrome Bitmaps (bit_depth = 1) werden unbehandelt an STELLA weitergegeben. - Ausgaben werden jetzt nur noch durch die STELLA-Funktion 'progress_bar' get„tigt. 'printf' sollten keine durchgefhrt werden :-) - Der Button 'Abbruch' in der Dialogbox von 'progress_bar' wird ausgewertet und ggf. die Funktion abgebrochen. Allgemeine Anmerkung -------------------- Sollte jemand PNG-Bilder besitzen, die von diesem Modul nicht bzw. fehlerhaft gelesen werden, so m”chte er sich bitte mit mir in Verbindung setzen, damit diese Probleme/Bugs beseitigt werden k”nnen. Vielen Dank. Anmerkungen zum PNG-Format -------------------------- - PNG ist das offizielle Nachfolgeformat fr GIF. GIF verwendet ein Kompressionsverfahren, auf welches seit kurzem eine Lizenzgebhr f„llig ist. Da dies fr frei verteilbare Bilder und Public-Domain-Programme nicht sinnvoll ist, wurde Ende 1994/Anfang 1995 von CompuServe PNG ('Portable Network Graphics', ausgesprochen 'Ping') als Nachfolgeformat vereinbart und ver”ffentlicht. PNG bietet u.a. folgende Features: - Truecolor-Bilder mit bis zu 48 Bits pro Pixel, - Graustufen-Bilder mit bis zu 16 Bits pro Pixel, - Textinformationen k”nnen beigefgt werden, - Sehr robust wg. komplexen CRC-Prfungen, - Effektive, 100% verlustfreie Kompression. - Es ist m”glich, das trotz besserer Kompressionsrate, die erzeugten Dateien gr”žer sind, als bei schlechterer Kompressionsrate. Speziell bei Truecolor- Bildern kann dies passieren. - Fr Truecolor-Bilder ist PNG auf den ersten Blick nicht das ideale Format. Allerdings ist mir kein anderes Format bekannt, das Truecolor-Bilder verlustfrei so kompakt speichern kann, wie PNG. JPEG erzeugt zwar, je nach Qualit„t, z.T. erheblich kleinere Dateien, allerdings komprimiert JPEG nicht verlustfrei (was fr einige Anwendungen notwendig ist). - Interlaced-Bilder sind vor allem im Internet verbreitet (speziell im WWW). Sie haben den Vorteil, sieben kleine 'Ebenen' des Bildes zu enthalten, von denen eine Ebene nach der anderen bereinandergelegt wird. Erfahrene User k”nnen meist schon nach den ersten Ebenen entscheiden, ob sie den Aufbau des Bildes abwarten m”chten oder nicht. Dadurch, das in der PNG-Datei mehrere 'Ebenen' abgelegt werden, wird eine interlaced-Datei natrlich gr”žer, als eine non-interlaced-Datei. Hinweis/Danksagungen -------------------- 'PNG for STELLA' basiert auf der 'libpng reference library' von Guy Eric Schalnat, Group 42, Inc., sowie der 'zlib general purpose compression library' von Jean-loup Gailly und Mark Adler. Ein grožes Dankesch”n geht an Thomas Knneth, ohne dessen Support (und STELLA) dieses Modul nie Realit„t geworden w„re. THANKS! Modul-Status ------------ Das Modul 'PNG for STELLA' ist Public Domain. Es darf allein oder im STELLA- Paket frei in Mailboxen, auf Diskette oder CD-ROM verbreitet werden. Ein Verkauf ist nicht gestattet. Der Autor beh„lt sich alle Rechtlichen Schritte vor! Autor ----- E-Mail (bevorzugt): MausNet: Alexander Lorenz @ N Internet: Alexander_Lorenz@n.maus.de Sackpost (kann dauern): Alexander Lorenz Diemantstein 127 86657 Bissingen [END]