home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
graphics
/
deskpic5
/
deskpic.txt
< prev
next >
Wrap
Text File
|
1993-01-23
|
20KB
|
421 lines
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
.\deskpic\deskpic.inf Eine Infodatei als Beispiel
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ß kurzfristig 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