home *** CD-ROM | disk | FTP | other *** search
- DeskPic
- -------
-
- Das Bild auf dem Desktop
- ------------------------
-
-
- DeskPic ist Freeware. Das heißt, daß Sie das Programm an
- Freunde, Bekannte, usw. weitergeben dürfen. Es dürfen KEINE
- Veränderungen am Programm oder diesem Text vorgenommen werden
- ohne Rücksprache mit dem Autor.
-
- Jegliche kommerzielle Nutzung dieses Programmes, sowie eine
- Weitergabe dieses Programmes gegen eine Gebühr, wie es z.B. bei
- PublicDomain-Händlern üblich ist, ist untersagt und wird bei
- Zuwiderhandlung dementsprechend polizeilich verfolgt.
-
- Ich gebe keine Garantie, daß DeskPic auch auf Ihrem Rechner
- einwandfrei funktioniert oder nicht irgendwelche Schäden anrichtet
- (was mir allerdings auch noch NIE passiert ist).
- Getestet habe ich DeskPic mit einem TT, und TOS3.06 in allen
- eingebauten Auflösungen und im Zusammenspiel mit einer Matrix-
- Grafikkarte, sowie auf einem MEGA ST mit TOS 1.03 und den dort
- eingebauten Auflösungen.
- Ich nehme deswegen an, daß es mit allen Auflösungen laufen wird,
- welche 1, 2, 4, und 8 Bitplanes unterstützen.
- Bei mir funktioniert DeskPic jedenfalls auch mit MiNT0.95 und dem
- Farbmodus der Matrix-Grafikkarte _einwandfrei_.
-
-
- EINLEITUNG
- ----------
- Dies ist eine unvollständige Programmdokumentation, weitere
- Erläuterungen werden bei entsprechender Resonanz oder Wünschen
- hinzugefügt. Ich persöhnlich mag es nämlich überhaupt nicht
- Anleitungen zu schreiben und habe diese Infos in recht kurzer Zeit
- geschrieben, so daß stilitische Fehler durchaus vorkommen (:-).
-
- Die Idee zu diesem Programm kam mir, als ich eines schönen Tages
- auf Arbeit die Tätigkeit von XLOADIMAGE (mit dem Parameter '-
- onroot') auf einer SUN betrachten durfte.
- Dort war es doch tatsächlich möglich daß man während des normalen
- Arbeitens den grauen Desktophintergrund von XWindows mit einem
- selbsgewählten Bild verschönern konnte. Da das ganze ja auch auf
- IBM-Kompatiblen Rechnern mit Windows fkt., sollte es doch kein
- Problem sein auch auf ATARI-Rechnern etwas ähnliches zu
- programmieren.
- Womit wir bei der eigentlichen Aufgabe von DeskPic sind. Es soll
- den doch ansonsten trostlosen Desktophintergrund mit schmucken
- Bildern verschönern.
-
- Da ich zudem kurz danach von Karsten Isakovic erfuhr, daß er an
- etwas in der Art schon arbeitet verfiel der Gedanke daran doch
- wieder in einige dunklere Regionen meiner grauen Zellen.
- Nachdem eine längere Wartezeit keine Verbesserung meines Wunsches
- schaffte machte ich mich kurzerhand daran etwas eigenes in dieser
- Richtung zu programmieren, doch noch nicht zu veröffentlichen.
-
- Da nun jedoch schon einige Leute Interesse an diesem Utility
- bekundet hatten "Hallo Christian und Peter, Ihr seid gemeint." und
- zudem schon ein anderes Utility in der Richtung aufgetauchte,
- welches jedoch nicht meinen Ansprüchen genügte, wurde es langsam
- Zeit mein Utility der Öffentlichkeit einmal vorzulegen, an dem ich
- sporadisch von Zeit zur Zeit etwas verbessere.
-
-
- VORAUSSETZUNGEN
- ---------------
- DeskPic sollte auf jedem ATARI-Computer der Serie ST/STE oder TT
- funktionieren. Eine spezielle Version für Rechner mit FPU wie im
- TT gibt es nicht, da so gut wie keine Floating-Points genutzt
- werden und eine spezielle Version für CPU's >= 68020 gerade einmal
- 8% an Geschwindigkeitsvorteil beim Laden von Bildern bringt.
- Ob es allerding korrekt mit MultiTos laufen wird, kann ich nicht
- mit Bestimmtheit sagen.
- DeskPic funktioniert in allen mir bekannten Auflösungen, solange
- die Farbanzahl nicht 256 übersteigt.
- Zusätzlich dazu fkt. DeskPic auch im TrueColor-Modus der
- Grafikkarten von Matrix und Spektrum, wobei als TrueColor-Format
- 24Bit-Targa-Bilder geladen werden können. Der Speicherverbrauch
- hierbei ist jedoch enorm.
-
-
- Mitgelieferte Dateien:
- .\deskpic\auto\deskpic.prg Das Programm für den AUTO-Ordner
- .\deskpic\deskpic.acc Das Accessorie
-
- Das Programm 'DESKPIC.PRG' installiert sich resident im Rechner
- mittels XBRA-Kennung und Cookie Eintragung. Die Kennung lautet in
- beiden Fällen 'DEPI'. Dabei wird der VDI-, BIOS- und (mittels der
- Datei 'deskpic.inf' wählbar) der GEMDOS-Vektor und der System-
- Vektor von etv_term verbogen.
-
- Das Accessorie 'DESKPIC.ACC' ist das entsprechende Accessorie zu
- dem residenten Teil und kommuniziert mittels Cookie-Eintrag mit
- diesem. Das Accessorie allociert resident Speicher, der je nach
- aktueller Bildschirmauflösung unterschiedlich groß ist. Berechnen
- läßt sich der Speicherverbrauch wie folgt:
- "((XAuflösung+7)/8) * YAuflösung * AnzahlDerBitplanes".
- Bei einer Auflösung von 1024*768 in 256 Farben (8 Bitplanes)
- werden also alleine für das Hintergrundbild 786432 Bytes
- allociert.
- Zusätzlich dazu werden ca. 150KB für DeskPic selbst benötigt,
- woraus folgt, daß man für dieses Utility schon einiges an Speicher
- haben sollte, wenn man noch einigermaßen mit seinem Rechner
- arbeiten möchte.
-
-
- INSTALLATION
- ------------
- Kopieren Sie die Datei DESKPIC.PRG in Ihren Auto-Ordner (Eine
- spezielle Reihenfolge der darin enthaltenen Programme ist nicht
- relevant).
- Das Accessory DESKPIC.ACC sollte in das Verzeichnis für Ihre
- Accessories (In der Regel die Root von Lauwerk C).
- Booten sie Ihren Rechner neu (Kalt- oder Warmstart).
-
-
- BEDIENUNG
- ---------
- Die Bedienung des Accesories ist eigentlich kinderleicht, doch
- hier die Beschreibung:
- Wenn man den Accesorie-Eintrag namens DeskPic ausgewählt hat,
- erscheint eine Dialogbox, welche die Schnittstelle zum Benutzer
- darstellt.
-
- In dem umrahmten Kästchen mit Titel 'Hintergrund' sind 2 Schalter
- zu finden, die die Bezeichnung 'Ein' und 'Aus' haben.
- Wählt man den Schalter 'Ein' wird das Hintergrundbild dargestellt.
- Wählt man den Schalter 'Aus' wird das Hintergrundbild nicht
- dargestellt.
-
- In dem umrahmten Kästechen mit dem Titel 'Bild' ist ein Knopf zu
- finden, der die Bezeichnung 'laden' trägt.
- Wird dieser Knopf angewählt, öffnet sich eine Fileselectbox um ein
- Bild für den Hintergrund zu laden.
- Ladbare Dateiformate sind:
- .GIF GIF87a und GIF89a
- .IMG monochrome IMG's und farbige XIMG's
- .PAC monochrome STAD-Bilder
- .PI? Degas-Bilder (nur ungepackte DEGAS-Bilder)
- .NEO Neochrombilder
- .DOO Doodle-Bilder
- .TGA unkomprimierte 24Bit-Targa Bilder
- Wurde eines der obigen Bildformate ausgewählt verwandelt sich der
- Mauszeiger in ein Diskettensymbol solange die Datei geladen wird.
- Einzige Ausnahme ist hier das GIF-Format, bei dem sich der
- Mauszeiger in einen animierten Rechenschieber verwandelt solange
- das GIF-Bild geladen und entpackt wird.
- Wurde das ausgewählte Bild erfolgreich geladen (Wann ein
- Nichterfolg auftreten könnte kann man weiter unten nachlesen)
- wurde, dann wird das Hintergrundbild automatisch eingeschaltet.
- Andernfalls ändert sich nichts an den Einstellungen und eine
- Fehlermeldung erscheint.
-
- Der Knopf mit der Bezeichnung 'Speichern' sichert das momentan
- geladene Bild in einem Schnellladeformat ab, welches nur in exakt
- der gleichen Auflösung und mit der gleichen Grafikkarte ladbar ist
- bzw. das Bild korrekt anzeigt.
- Wer hat schließlich Lust nach demm Booten jeweils das Entpacken
- eines GIF-Bildes abzuwarten (:-).
-
- Ein weitere Knopf ist mit der Bezeichnung 'Info' zu finden, der
- bei Aktivierung eine weitere Dialogbox mit einigen Infos zu dem
- Programm DeskPic ausgibt. Diese Dialogbox kann verlassen werden,
- indem sich Maus zu Maus gesellt (;-).
-
- Der Knopf mit der Bezeichnung 'Sichern' speichert den momentanen
- Pfad und den Namen des geladenen Bildes in einer Datei namens
- 'deskpic.inf' ab, die es ermöglicht selbiges Bild nach einem Reset
- automatisch als Desktophintergrund anzumelden.
- Wenn DeskPic zum Zeitpunkt des Sicherns ausgeschaltet ist, ist es
- nach entsprechender Rückfrage auch möglich das momentan aktive
- Programm in eine Art Ausnahmeliste einzubinden, deren Daten
- ebenfalls in der Datei 'deskpic.inf' gespeichert werden.
- Zusätzlich zu den Bildnamen und Programmnamen wird die die
- aktuelle Bildschirmauflösung und die Anzahl der momentan
- aktiven Bitplanes gespeichert.
-
- Der Knopf mit der Bezeichnung 'Ausgang' schließt nach dessen
- Auswahl die Dialogbox von DeskPic.
-
- Der letzte anwählbare Knopf ist der sogenannte Dragger.
- Wenn man ihn anwählt und die linke Maustaste gedrückt läßt, so
- kann man die Dialogbox wie bei den bekannten FlyDials verschieben.
- Außerdem wird beim nächsten Öffnen der Dialogbox diese an der
- zuletzt geöffenten Position erscheinen.
-
-
- ERLÄUTERUNGEN
- -------------
- Wenn in der Dialogbox von DeskPic der Schalter 'Ein' nicht
- selektierbar ist, dann wurde noch kein Bild geladen.
-
- Wenn nicht genügend freier Speicher vorhanden ist, fehlt der
- Dragger, und somit ist die Möglichkeit des Verschiebens der
- Dialogbox und der Alertboxen von DeskPic nicht gegeben.
- Außerdem erhält man bei der Anwahl des Buttons 'INFO' nur eine
- Alertbox mit einem kurzen Info zu DeskPic.
-
- Wenn man ein Bild lädt, welches kleiner als der sichtbare
- Bildschrm ist, werden die Flächen die ansonsten frei bleiben
- würden mit dem geladenen Bild gemustert, so daß man z.B. bei
- Eschergrafiken nicht bemerkt, daß das eigentliche Bild kleiner ist
- als der sichtbare Bildschirm.
- Wenn ein Bild geladen wird, das größer als der sichtbare
- Bildschirm ist, so wird ledigiglich ein fester Teilbereich
- dargestellt.
- Dieser Teilbereich reicht in der horizontalen von 0 bis zur
- horizontalen Bildschirmauflösung und in der vertikalen von 0 bis
- zur vertikalen Bildschirmauflösung minus der Höhe der Menüleiste.
-
- Wird der Button 'SICHERN' angewählt und es existiert schon eine
- Datei namens 'deskpic.inf', so versucht DeskPic die neu
- hinzugekommenen Informationen am Anfang der Datei einzufügen. Bei
- zu geringem Speicher (wenn die Infodatei nicht komplett in den
- Speicher geladen werden kann) wird die neue Information an die
- Datei angehängt.
-
- Das Bildformat GFB:
- -------------------
- Es handelt sich um ein Format, welches ich für das Programm
- GemFrac einmal entwickelt hatte.
- Folgende Daten sind in diesem Bildforat zu finden:
- 4 Bytes Kennung (GF25 in der vorliegenden Version)
- 4 Bytes Anzahl der Farben.
- 4 Bytes Breite des Bildschirms
- 4 Bytes Höhe des Bildschirms
- 4 Bytes Gröβe des zu allozierenden Puffers für den Bildschirm
- n Bytes Grafikdaten, wobei n = ((Bildbreite+7)/8)*Bildhöhe*Planes,
- was der gröβe allocierten Puffers entspricht.
- 768 Bytes Farbtabelle => max. 256 Farben.
-
-
- Die Datei DESKPIC.INF:
- ----------------------
- Wenn jemand diese Infodatei 'deskpic.inf' mittels eines Editor
- verändern möchte, führe ich hier das Format auf, welches nur
- ASCII-Zeichen enthalten sollte und jedes angeführte Schlüsselwort
- durch Leerzeichen getrennt sein muß:
-
- Daten für automatisches An/Ausschalten:
- 1. Wort: Kennung: '#noautoset'
- 2. Wort: Name des Cookies, bei dessen Vorhandensein DeskPic sich
- nicht in den GemDos-Trap einklinkt und somit ein
- automatische An/Ausschalten nicht beachtet wird.
- 3. Wort: horizontale Bildschirmauflösung in der DeskPic sich
- nicht automatisch an/ausschalten soll.
- 4. Wort: vertikale Bildschirmauflösung in der DeskPic sich nicht
- automatisch an/ausschalten soll.
- 5. Wort: Anzahl der BitPlanes einer Bildschirmauflösung in der
- DeskPic sich nicht automatisch an/ausschalten soll.
- Wird bei Punkt 2-5 stattdessen die Kennung 'EGAL' eingetragen,
- nimmt DeskPic an sie sind in jedem Fall wahr.
- Falls es somit Probleme mit einem anderen TSR-Programm geben
- sollte, das einen Cookie installiert, läßt sich somit in den
- meisten Fällen das Problem beheben, indem man als 2. Wort die
- Cookie-Kennung des Probleme bereitenden Programmes angibt oder mir
- eine genaue Fehlermeldung zukommen läßt.
- Wenn es bei anderen Programmen Probleme geben sollte oder man es
- nicht möchte, daß DeskPic sich in den GemDos-Trap einklinkt, so
- sollte man als 2. Wort die Kennung 'egal' in das Infofile
- schreiben.
- HINWEIS: Dies sollte man in jedem Fall ersteinmal probieren, wenn
- Probleme mit DeskPic auftauchen sollten, da hierdurch der GEMDOS-
- Vektor und der Systemvektor für etv_term _nicht_ verbogen wird.
-
- Daten für Bilder:
- 1. Wort: Kennung '#bilddaten:'
- 2. Wort: absoluter Pfad des zu ladenden Bildes incl. Bildname.
- (Wildcards sind nicht erlaubt).
- 3. Wort: horizontale Bildschirmauflösung in der das Bild
- automatisch geladen werden soll.
- 4. Wort: vertikale Bildschirmauflösung in der das Bild
- automatisch geladen werden soll.
- 5. Wort: Anzahl der BitPlanes einer Bildschirmauflösung in der
- das Bild automatsich geladen werden soll.
- Wird bei Punkt 2 stattdessen die Kennung 'KEIN_BILD' eingetragen,
- so stellt DeskPic in dieser Auflösung kein Bild nach dem Booten
- oder einem Auflösungswechsel dar.
- Wird bei Punkt 3-5 stattdessen die Kennung 'EGAL' eingetragen,
- nimmt DeskPic an sie sind in jedem Fall wahr.
-
- Daten für Programme:
- 1. Wort: Kennung '#programmdaten:'
- 2. Wort: absoluter Pfad des Programmes incl. Programmname, oder
- nur der Programmname (Wildcards sind nicht erlaubt).
- 3. Wort: horizontale Bildschirmauflösung in der das die Regel für
- das Ausnahmeprogramm zutreffen soll.
- 4. Wort: vertikale Bildschirmauflösung in der die Regel für das
- Ausnahmeprogramm zutreffen soll.
- 5. Wort: Anzahl der BitPlanes in der die Regel für das
- Ausnahmeprogramm zutreffen soll.
- Wird bei Punkt 3-5 stattdessen die Kennung 'EGAL' eingetragen,
- nimmt DeskPic an sie sind in jedem Fall wahr.
- Somit hat man die Möglichkeit für seine bevorzugten
- Bildschirmauflösungen automatisch verschiedene Bilder laden zu
- lassen.
- Wissenswert dabei ist noch, daß DeskPic die entsprechenden Daten
- sequentiell abarbeitet und bei einem Eintrag mit der Kennung
- 'KEIN_BILD' für die aktuelle Auflösung alle weiteren Daten im
- Infofile ignoriert.
- Außerdem wird versucht eine Doppeleintragung im Infofile zu
- verhindern.
- Beispiel:
- #noautoset: egal egal egal 4
- #bilddaten: f:\puzzle.gif egal egal 4
- #bilddaten: e:\pics\dragon.gif 1024 768 8
- #bilddaten: e:\pics\img\usr\cool_dog.img egal egal egal
- #programmdaten: calamus.prg egal egal 8
- #programmdaten: calamus egal egal 4
- #programmdaten: charlimg.prg egal egal 8
- #programmdaten: charlimg.prg egal egal 4
- #programmdaten: studio.prg egal egal 8
- #programmdaten: studio.prg egal egal 4
- #programmdaten: titanen.prg egal egal egal
-
-
- PROBLEME
- --------
- Mit einigen Dateiformaten kann es zu Problemen führen, die sich
- darin äußern, daß sie unter einigen Auflösungen nicht geladen
- werden können.
-
- Ausnahmen sind hier die Dateiformate GIF87a, GIF89a und monochrome
- IMG's, welche in jeder Auflösung ladbar sind in der DeskPic
- funktioniert.
- Farbige GIF-Bilder werden im monochromen Auflösungen gedithert
- dargestellt, wobei die Qualität jedoch nicht sehr berauschend ist.
- Ich empfehle in solchen Fällen das GIF-Bild mit einem anderen
- Programm zu dithern und in ein monchromes IMG-Bild zu wandeln.
- In Auflösungen mit 4 oder 16 Farben werden GIF-Bilder
- grundsätzlich in Graustufen dargestellt, wenn die Anzahl der darin
- enthaltenen Farben größer ist als die darstellbaren Farben.
- Farbige IMG's sogenannte XIMG's können lediglich in Auflösungen
- mit der gleichen Farbanzahl oder Auflösungen mit einer größeren
- Farbanzahl dargestellt werden.
- Farbige DEGAS-Bilder und Neochrom-Bilder können nur in der
- Auflösung dargestellt werden, in der sie erzeugt wurden oder in
- Auflösungen die eine gleiche Farbanzahl aufweisen.
- Targa Bilder werden lediglich im TrueColor-Modus der
- Frabgrafikkarten von Matrix oder Spektrum im Echtfarbformat
- dargestellt. In den Farbmodi mit bis zu 8 BitPlanes werden die
- Targa-Bilder in Graustufen und im Monochrommodus werden diese
- gedithert dargestellt.
-
- Bei nicht genügend vorhandenem Speicher kann es vorkommen, daß
- einige Bilder nicht geladen werden können, da einerseits der
- temporäre Speicher für diese Bilder nicht angelegt werden kann,
- oder für ein transformieren vom Standardformat in das
- geräteabhängige Format des VDI kein Speicher mehr vorhanden ist.
- Der erste Fall kann bei STAD-Bildern, der letze Fall bei GIF-
- Bildern auftreten und beide Fälle können bei XIMG-Bildern
- auftreten.
-
- Ob auch XIMG's mit 4 Farben korrekt geladen dargestellt werden,
- kann ich leider nicht beurteilen, da es mir nicht möglich war
- mit den mir zu Verfügung stehenden Programmen solch ein Bildformat
- zu erzeugen.
-
-
- PROBLEMLÖSUNGEN
- ---------------
- Damit auch die Leute DeskPic verwenden können, die nicht
- allzuviel Speicher ihr Eigen nennen können, werde ich evtl.
- demnächst auch eine Light-Version von DeskPic herausgeben, wo das
- einzig ladbare Bildformat das monochrome IMG-Format und das .GFB-
- Format sein wird.
-
- Damit nicht die 16 vor DR vorgegebenen VDI-Farben beim Laden von
- GIF-Bildern (bei den anderen Bildformaten ist mir das zu
- aufwendig, wenn nicht gar fast unmöglich) zerstört werden (das
- macht sich z.B bei ANSI-Farbgrafiken in Mailboxen sonst recht
- schlecht), werde ich versuchen in einer der nächsten Versionen
- Farbanpassungen zu implementieren, die dann über einen weiteren
- Schalter erreichbar sind.
-
- Damit man auch andere Teilbereiche eines Bildes betrachten kann,
- das größer ist als die eigentliche Bildschimauflösung werde ich
- höchstwahrscheinlich noch eine Möglichkeit einbauen die ein
- Verschieben dieses Teilbereiches erlauben. Das hat dann jedoch zur
- Folge, daß jurzfristig mehr Speicher benutzt wird.
-
- Wenn mir jemand eine besser funkionierende Methode für das
- momentan genutze Dithern (z.B. ein Dithern mittels Floyd-
- Steinberg-Algorithmus) als C-Quellcode zur Verfügung stellt baue
- ich ihn gerne in das Programm mit ein. Momentan habe ich
- wichtigeres zu tun (:-).
-
- Wenn mir jemand einen Algorithmus für Farbdithering als C-
- Quellcode zur Verfügung stellen kann baue ich diesen Algorithmus
- natürlich liebend gerne ein und implementiere dann auch
- Laderoutinen für Echtfarbbilder.
- In beiden Fällen wäre ich demjenigen sehr dankbar, es würe mir
- eine Menge Arbeit ersparen.
- Übrigends reichen mir schon Hinweise wo ich entsprechende
- Algorithmen für das Colodithering finden kann (z.B. in welchen
- Dokumentationen).
-
-
-
-
- SCHLUßBEMERKUNG
- ---------------
- Verbesserungsvorschläge, Wunschlisten, Fehlermeldungen, Drohungen,
- Lobeshymnen oder gar Geldspenden sind an folgende Adresse zu
- schicken:
-
-
-
- Norbert Marschalleck
- Ehrenpfortensteig 4
- W-1000 Berlin 28
- Tel.: 030/ 404 27 17 (19h-24h)
- Kto.: 7774268 bei Deutsche Bank AG, BLZ 100 700 00
-
- Mausnetz: Norbert Marschalleck @ B
- InterNet: nexus@cs.tu-berlin.de
- norbert@charly.ipk.fhg.de
-