PhotoCDAGA 1.1 von Günther Röhrich ********************************** PhotoCDAGA ist ein Anzeigeprogramm/Konverter für Bilder im PhotoCD Format. Es basiert auf den Quelltexten zu dem Programm "hpcdtoppm" geschrieben von Hadmut Danisch. Aus disem Grund muß ich auf seinen Copyright-Vermerk aufmerksam machen: hpcdtoppm (Hadmut's pcdtoppm) v0.6 Copyright (c) 1992, 1993, 1994 by Hadmut Danisch (danisch@ira.uka.de). Permission to use and distribute this software and its documentation for noncommercial use and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. It is not allowed to sell this software in any way. This software is not public domain. Diese Auflagen gelten also auch für PhotoCDAGA. Aber keine Angst, Du kannst es nach Belieben weitergeben oder verändern. Lediglich die kommerzielle Nutzung oder Vertrieb des Programmes ist nicht gestattet. (Gegen eine Verbreitung auf CD-ROM wie der Aminet CD dürfte ebenfalls niemand etwas dagegen haben.) Im Zweifelsfall sollte man direkt bei Hadmut Danisch nachfragen. (Adresse siehe unten.) Wie schon der Name sagt ist zur Nutzung des Programms ein Amiga mit dem AGA- Chipsatz erforderlich. Außerdem ein 68020 oder höherer Prozessor, reichlich Speicher sowie ein CD-ROM Laufwerk, das auch Photo-CDs lesen kann. Die Farbanzeige erfolgt im HAM8-Modus, die Graustufenanzeige im 256-Farben- Modus. Die Vorteile von PhotoCDAGA: - es kostet nichts (der wohl größte Vorteil...) - vollständiger Quelltext ist verfügbar, kann mit allen C-Compilern auf dem Amiga übersetzt werden - hohe Geschwindigkeit (wurde mit gcc 2.6.3 kompiliert, ein Teil ist direkt in Assembler geschrieben) - hohe Bildqualität bei Verwendung von map-Dateien und des overskip-Modus (wahrscheinlich besser als mit allen bisherigen Programmen) - abspeichern im ppm-Format möglich zur anschließenden Konvertierung in andere Bildformate (z.B ins IFF-ILBM Format mit ppm2AGA oder nach JPEG mit cjpeg) Im NETPBM-Paket sind Konverter für (fast) alle Bildformate vorhanden. (Aminet: gfx/pbm) Nachteile (leider): - hoher Speicherverbrauch - schlechter Komfort (nur Shell-Bedienung) - keine Unterstützung höherer Auflösungen als Base (512x768) (hier muß man auf hpcdtoppm, das Original, zurückgreifen) An dieser Stelle noch ein großes Dankeschön an Hadmut Danisch für sein Programm hpcdtoppm und den zugehörigen Quelltext. Ohne seine Arbeit gäbe es auch PhotoCDAGA nicht. Vielen Dank noch an alle die an dem GNU C-Compiler mitgewirkt haben. *********************************************************************** So, nun geht es endlich mit der Anleitung los: Systemvoraussetzungen: Ein Amiga mit viel Speicher und: - AGA Chipsatz - 68020 oder höheren Prozessor - OS 3.0 oder höher - ein CD-ROM Laufwerk zum Lesen der Photo-CDs Im Gegensatz zur Version 1.0 ist die ixemul.library nicht mehr erforderlich und ein Stapelspeicher (Stack) von 4000 Bytes genügt jetzt auch. Als Eingabe braucht man noch Bilder im Photo-CD Format. Diese haben die Endung .PCD und sind auf den Photo-CDs im Verzeichnis PHOTO_CD/IMAGES zu finden. (Gilt auch für fertig bespielte CDs die eventuell noch PC-Programme enthalten.) Für die Übersicht (Option -0) ist eine sog. Overview-Datei erforderlich. (üblicher Dateiname: PHOTO_CD/OVERVIEW.PCD) Installation: ************* Die Programme aus dem bin-Verzeichnis können in ein beliebiges Verzeichnis kopiert werden, sie sollten sich aber im Suchpfad der Shell befinden. Für die Verwendung des Shell-Skripts PhotoMap muß JPEGTMP: mit einem assign- Befehl an ein Verzeichnis auf einer Festplatte mit ausreichend Speicherplatz zugewiesen werden. (z.B. assign JPEGTMP: HD:T) Dieses Verzeichnis wird auch bei der Erzeugung von map-Dateien für jpegAGA verwendet. Am Besten schreibt man diesen Befehl in die User-Startup Datei damit er nach jedem Neustart ausgeführt wird. Das Shell-Skript PhotoMap muß in das S: Verzeichnis kopiert werden. Es setzt voraus daß sich die Programme PhotoCDAGA sowie ppm2AGA im Suchpfad der Shell befinden und daß ein JPEGTMP: Verzeichnis existiert. Eventuell muß man noch die Umgebungsvariable MAPDIR setzen, siehe später. Der Aufruf geschieht wie folgt: ******************************* PhotoCDAGA PhotoCD-Bildname [ppm-Bildname] Optionen PhotoCD-Bildname **************** Das ist der Name einer Datei im PhotoCD-Format. (bzw. Overview-Datei) (z.B cd:PHOTO_CD/IMAGES/IMG0001.PCD) Wenn das Format nicht stimmt dann bekommt man nur Müll angezeigt. Achtung: Manche Bilder enthalten nicht alle Auflösungen. (Wenn die Datei- länge sehr viel kleiner als 3MB ist) Es kann sein daß man dann die -x Option bei der Base-Auflösung nicht verwenden kann. ppm-Bildname ************ Name der zu erzeugenden ppm/pgm-Datei. (Nur nötig wenn die Option -pgm oder -ppm angegeben wurde.) Optionen ******** -b Name Dieser Option muß ein Name folgen. Damit wird verhindert daß bei mehreren CDs die gleichen map-Dateien für verschiedene Bilder verwendet werden. (s. später) Beim Erzeugen der map-Dateien mit dem Shell-Skript PhotoMap ist die gleiche Option dann anzugeben. Diese Option ist nur bei Farbanzeige sinnvoll. -x Es wird der sog. overskip-Modus verwendet, der zu einer besseren Bild- qualität führt. (nur bei Farbdarstellung.) Wird hierbei die Base-Auflösung verwendet dann dauert die Bearbeitung viel länger und es ist sehr viel Speicher nötig. (Mit 6MB ist es gerade noch möglich.) -s Die Schärfe des Bildes wird erhöht. Man sollte das aber nur bei wirklich unscharfen Bildern einsetzen damit man mehr Details erkennen kann. -c Das Programm versucht eine eventuelle schwarze Berandung aus dem Bild zu entfernen. -n Das Bild wird nicht gedreht. Normalerweise versucht PhotoCDAGA die richtige Orientierung selber herauszufinden (Hoch- oder Querformat) um das Bild korrekt anzuzeigen. -r Das Bild wird im Uhrzeigersinn gedreht (d.h ins Hochformat gebracht) -l Das Bild wird entgegen dem Uhrzeigersinn gedreht (d.h. ins Hochformat gebracht) -h Das Bild wird gekippt. -m Alle durchgeführten Schritte bei der Dekodierung werden auf dem Bildschirm mitgeteilt. -c- Das Bild wird etwas dunkler angezeigt. -c+ Das Bild wird etwas heller angezeigt. -pgm Es wird eine pgm-Datei erzeugt. (d.h. 8bit-Graustufen-Format) Als zweiten Parameter ist der Dateiname anzugeben. -ppm Es wird eine ppm-Datei erzeugt. (d.h. 24bit-Farbe) Als zweiten Parameter ist der Dateiname anzugeben. -gray Die Anzeige erfolgt im Graustufen-Modus. -vga Bei der Anzeige wird der VGA-Bildschirmmodus verwendet. (Auch Multiscan genannt.) -0 n (neu in Version 1.1) Es wird eine Übersicht (16 Bilder) erzeugt, beginnend mit dem n-ten Bild. Bei Graustufenanzeige (Option -gray) werden zusätzlich noch die jeweiligen Bildnummern angezeigt. Die Eingabedatei muß eine sog. Overview-Datei sein. (üblicherweise PHOTO_CD/OVERVIEW.PCD) -1 Es wird die Base/16-Auflösung (128x192) angezeigt. -2 Es wird die Base/4-Auflösung (256x348) angezeigt. -3 Es wird die Base-Auflösung (512x768) angezeigt. (Das ist die Voreinstellung.) Ein vorzeitiger Abbruch ist mit CTRL-C möglich. Wird bereits ein Bild angezeigt dann muß man die rechte Maustaste drücken. Der Bildschirm hat eine (unsichtbare) Ziehleiste sowie Vordergrund/Hintergrund Schalter, die voll funktionsfähig sind. Dank der Autoscroll-Eigenschaft wird der Bildschirm automatisch verschoben wenn man mit dem Mauszeiger den Rand erreicht. Will man ein PhotoCD-Bild in das normale IFF-ILBM Format umwandeln dann muß man als erstes eine ppm-Datei erzeugen und anschließend ppm2AGA aufrufen. Näheres steht in der zugehörigen Anleitung. Erzeugung der map-Dateien ************************* Diese Dateien sind unbedingt erforderlich damit die Anzeige in der best- möglichen Qualität erfolgt. Sie werden im Normalfall durch das Shell-Skript PhotoMap erzeugt, so daß man sich nicht um die Details kümmern muß. Der Aufruf lautet: PhotoMap PhotoCD-Datei [-b BaseName] Bei erfolgreicher Ausführung wird eine map-Datei mit korrektem Namen erzeugt. (auch auf PC-Dateisystemen) Man kann auch mehrere Dateien mit einem Aufruf er- zeugen. So werden z.B. durch den Befehl SPat PhotoMap cd:PHOTO_CD/IMAGES/#?.PCD alle Bilder auf einer PhotoCD bearbeitet. Falls es nicht möglich ist, die map-Datei an der gleichen Stelle wie das Bild abzuspeichern (das ist bei CD-ROMs immer der Fall) dann wird die map-Datei in dem Verzeichnis abgelegt, auf das die Umgebungsvariable MAPDIR weist. PhotoCDAGA wird sie dann ebenfalls dort suchen. Das Setzen der Umgebungsvariablen kann z.B. erfolgen mit dem Befehl: setenv MAPDIR HD:tempdir Die Variable geht dann allerdings nach einem Zurücksetzen des Rechners verlo- ren. Man kann sie dauerhaft sichern mit dem Befehl: copy ENV:MAPDIR ENVARC: ACHTUNG: Auf keinen Fall darf man diselbe map-Datei für mehrere verschiedene Bilder verwenden, das führt zu einer Verschlechterung der Qualität. Wenn man mehrere PhotoCD's hat dann sollte man unbedingt mit der Option -b einen ver- schiedenen Basisnamen für jede CD angeben. Die Option ist für das Skript PhotoMap und für PhotoCDAGA anzugeben. Wenn man z.B. eine CD mit Bilder aus Australien hat dann erzeugt man die map- Dateien mit dem Befehl: SPat PhotoMap cd:PHOTO_CD/IMAGES/#?.PCD -b Australien (Die Umgebungsvariable MAPDIR muß auch gesetzt sein!) Anschließend kann man die Bilder anschauen mit: PhotoCDAGA cd:PHOTO_CD/IMAGES/IMG0030.PCD -c -vga -b Australien (Wenn genügend Speicher vorhanden ist sollte man noch -x angeben.) Nun kommen wie üblich vorab ein paar Fragen und Antworten: ********************************************************** (das erspart mir später die Arbeit) F: Ich habe 6MB Speicher aber ich kann die Optione -x in der Base-Auflösung wegen Speichermangel nicht einsetzen. A: Das ist gut möglich. Es empfiehlt sich, den Rechner ohne die Startup-Sequence zu booten (d.h. man kommt direkt in die Shell) und es von dort aus zu versuchen. (nur für Freaks...) Einige Tips: - setpatch aufrufen - das CD-ROM Laufwerk anmelden mit z.B. mount CD: - assign ENV: RAM:, setenv MAPDIR xxx eingeben - nun müßte es gehen (eventuell vorher noch den Multiscan-Monitortreiber starten) F: Ich habe ein CD-ROM Laufwerk x und den Kontroller y, warum kann ich die Photo-CDs nicht lesen ? A: Das weiß ich leider auch nicht. Es empfiehlt sich auf jeden Fall, es mit dem frei erhältlichen AmiCDROM-Dateisystem noch zu versuchen. Bei sonstigen Fehlern/Wünsche/Verbesserungsvorschläge bitte ich darum, mich zu benachrichtigen. Und nicht vergessen: Bei Fehlerbeschreibungen immer die verwendete Konfiguration angeben. (wie unten) Getestete Konfiguration: (meine) Amiga 4000/030, OS 3.0, 2MB Chip, 4MB Fast Prozesor: 68EC030/25MHz, Koprozessor: 68882/32MHz CD-ROM Laufwerk: Mitsumi FX 001 D Kontroller: Tandem CD+IDE Filesysteme: TandemCacheCDFS, AmiCDROM Entstehungsgeschichte ********************* 1.0 - 20. November 1994 - erste veröffentlichte Version 1.1 - 11. April 1995 - die ixemul.library wird nicht mehr benötigt - ein Stack von 4000 Bytes reicht jetzt aus - eine kleine Änderung im HAM-Kodierer bewirkt, daß bei einem seitlichen Verschieben des Bildes die Störungen am linken Rand sehr viel kleiner werden - besseres und schnelleres Öffnen des Bildschirms - 16-Bilder-Übersicht hinzugefügt (Option -0 n) Aufruf ****** Wie Du sicher gemerkt hast bietet das Programm bislang nicht sehr viel, es gibt noch viel zu tun. Meine Zeit ist leider begrenzt. (Ich studiere derzeit Elektro- technik an der Uni Stuttgart und habe neben der Computerei noch andere Hobbies.) Aus diesem Grund suche ich weitere Programmierer die bereit sind, mit mir zu- sammenzuarbeiten sowie Beta-Tester für die fertigen Programme. Wenn Du mitma- chen willst dann melde dich bitte. Es würde mich außerdem interessieren, was sonst noch an Optionen und Verbesserungen des Programms erwünscht ist. Die Übersichtsfunktion ist ja noch ziehmlich primitiv, da läßt sich noch viel machen. Alle Zuschriften/Geschenke/Fehlerberichte/Vorschläge usw. sind an die folgenden Adressen zu schicken: Elektronische Post: Normale Post: ******************* ************* Guenther@studbox.uni-stuttgart.de Günther Röhrich (Internet EMAIL) Lerchenbergstr. 4 D-73733 Esslingen Falls Du innerhalb von drei Wochen keine Antwort auf eine EMAIL bekommst so versuche es über die normale Post noch einmal. Hier noch die Adresse von Hadmut Danisch, auf dessen Quelltexten dieses Programm aufbaut. Hadmut Danisch (danisch@ira.uka.de , will change in future) E.I.S.S. (European Institute for System Security) Universitaet Karlsruhe Am Fasanengarten 5 D-76128 Karlsruhe Germany FAX: +49 721 696893 Tel./FAX privat: +49 721 607306 (will change in future)