*************************************************************************** * * * IMAGO * * * *************************************************************************** Ein Zeichenprogramm unter GEM fr monochrome IMG-Grafiken beliebiger Gr”áe. Programmiert von: Dietrich Schulten, Gronauer Str. 157, 64625 Bensheim Imago ist in der Version 1.7 Freeware. 1. Einleitung Imago (lat. Bild, Ahnen-, Schatten-, Traumbild!, fem.) ist ein voll unter GEM laufendes, monochromes Grafikprogramm, arbeitet aber auch mit monochromen Grafiken auf Farbbildschirmen. Es beschr„nkt sich auf die notwendigsten Funktionen, weil es dazu ge- dacht ist, neben einem Textverarbeitungsprogramm (wo m”glich, aus dem Programm aufrufbar) zu arbeiten. Meine Mausadresse lautet: Dietrich Schulten @ HD Anregungen nehme ich jederzeit entgegen. Meine Adresse befindet sich auch im Dialog "ber Imago...". Im Folgenden eine Liste wichtiger Eigenschaften von Imago. In manchem unterscheidet sie sich von anderen Grafik-Programmen dieser Preisklasse.:-) 2. Eigenschaften von Imago 2.1. Grafik-Eigenschaften - Bearbeitung von beliebig groáen IMG-Grafiken. - Autoscrolling beim Berhren der Fensterr„nder. Dabei wird anschlie- áend dort weitergezeichnet, wo das Fenster berschritten wurde. Beim Freizeichnen wird also nicht das Bild unter der Maus weitergezogen und dabei gezeichnet. - Zeichnen von Objekten auch dort, wo sie ber den Fensterrahmen hinausragen. - Grafikmodi Replace, Or, Xor und Invers transparent bei Zeichnen und Blocks. Die Modi sind 'online' beim Zeichnen ver„nderbar. - Optional Zeichnen in weiá. So sind z.B. weiáe Schraffuren m”glich. - Freie Wahl der Linienstile und -st„rken, soweit das VDI uns l„át. - Sprhdose. - Bezierkurven, unter Bercksichtigung des gltigen Linienstils. - eingebauter Texteditor bis 25 Zeilen - Undo ber die ganze Bildfl„che 2.2. GEM-Orientierung - Imago ist in der Lage, auf Farbbildschirmen monochrome Bilder zu bearbeiten und kann daher fr Textverarbeitungen verwendet werden, die zwar in Farbe laufen, aber nur monochrome Bilder drucken. - Untersttzung von GDOS-Zeichens„tzen, wenn GDOS installiert ist. Der Cursor paát sich dabei automatisch Proportionalzeichen und Schriftattributen an, wie das auch in Tempus Word gute Sitte ist. Speedo-GDOS-Zeichens„tze werden untersttzt. True Type weiž ich nicht, vielleicht kann mir jemand von euch sagen, wie sich Imago da macht? - Drucken von IMG-Grafik ber GDOS. Daher freie Skalierung. - Parameterbergabe durch Anwendung anmelden. Aus Kommandozeilen- interpretern wie Mupfel k”nnen Imago auch ber das ARGV-Verfah- ren mehrere Bilder gleichzeitig bergeben werden. - Imago mag Let 'Em Fly. - Imago mag MultiGEM. - Imago liest IMG, PAC, Degas mono und Doodle, schreibt aber nur IMG, zum Teil um es kurz zu halten, zum Teil, um dem Formatewirr- warr einen Riegel vorzuschieben. - Benutzeroberfl„che gem„á den Richtlinien des Profibuches. - Imago hat keinen eigenen Desktop, sondern meldet - wie im Profi- buch empfohlen - den Standarddesktop an. So bleibt in Multitaskingsystemen der Systemdesktop zug„nglich. - GEM-Clipboard auslesen und beschreiben. 2.3. Die Mens von Imago Diese kann man in der Datei Menues.img besichtigen. 3. Bedienungsanleitung 3.1. Zeichnen Die verschiedenen Grafikobjekte k”nnen mit unterschiedlichen Attributen versehen werden. Dafr gibt es im Men Stil Einstellungsdialoge. Bei Liniengrafik, Grafik mit Mustern und Text mit Attributen kann der zu- geh”rige Parameterdialog auch direkt beim Menaufruf zwischengeschaltet werden. Dies geschieht durch Drcken der Shifttasten entweder bei der Auswahl des jeweiligen Menpunktes oder zusammen mit dem jeweiligen Tastaturcode. Die Definition von Grafik-Objekten geschieht analog zum Desktop durch Aufziehen bei gedrckter linker Maustaste. Die Definitionsphasen werden jeweils durch den Zeigefinger signalisiert. Nach dem Loslassen der linken Maustaste ist das Objekt definiert und kann verschoben werden. Ein Linksklick setzt das Objekt im Bild ab. Die Funktionen werden mit der rechten Maustaste verlassen. W„hrend Grafikobjekte auf dem Bildschirm beweglich sind, kann man fol- gende Einstellungen vornehmen: 1, 2, 3, 4 schalten die Grafikmodi um. Die Taste '.' wechselt weiá und schwarz. Backspace setzt Grafikmodus und Farbe auf Replace und schwarz zurck. Insert l„át Imago Koordinaten zeigen, Home schaltet ein Fadenkreuz zu. Space bringt das letzte Objekt erneut auf den Bildschirm. Sinn: Manchmal merkt man nach Verlassen der Funktion, daž man z.B. noch ein weiteres Rechteck dieser Gr”že gebraucht h„tte. Simsalabim - schon ist es wieder da. Das gleiche bewirkt der entsprechende Menpunkt unter Extra. Return ruft die letzte Zeichenfunktion wieder von vorne auf. So braucht man sich nicht alle Tastencodes zu behalten, wenn man immer wieder die- selbe Objektart in verschiedenen Gr”žen braucht. Auch hierzu gibt es einen Menpunkt unter Extra. Bei den Bezierkurven mssen die vier Sttzpunkte alle aus dem zuerst gesetzten Punkt 'herausgezogen' werden. Den ersten Punkt setzt man durch einen Einfachklick. H„lt man die linke Maustaste gedrckt, kann man gleich eine Gerade aufziehen. Anschlieáend klickt man wieder in den ersten Marker und holt mit gedrckter Maustaste die beiden anderen Marker aus ihm hervor. Dadurch, daá bei Bezierkurven das Scrolling im- mer einsetzt, wenn die Maus den Rand berhrt, bleiben alle Sttzpunkte leicht erreichbar. Rechtsklick schlieát die Funktion ab. Bezierkurven k”nnen nicht insgesamt verschoben werden, dafr sind die Definitionspunkte frei verschiebbar. In der Textfunktion wird zun„chst durch Einfachklick die Schreibposition bestimmt. Es erscheint ein Cursor. Nun kann mehrzeilig Text eingegeben werden. Auf Linksklick wird der Text beweglich und verh„lt sich nun so wie alle anderen Grafikobjekte. Beim erneuten Einfgen von Text ist der Text ganz „hnlich zun„chst edierbar, auf Linksklick verh„lt er sich wie andere Objekte auch. Dia Diaschau (Menpunkt Datei) erkl„rt sich selbst. Mit Space geht's weiter zum n„chsten Bild, sonst automatisch nach einer einstellbaren Zahl von Sekunden. Esc oder Rechtsklick bricht die Diaschau ab. 3.2. Drucken Imago druckt IMG-Grafiken vom Massenspeicher. Das funktioniert aber nur bei installiertem GDOS und vorhandenen Druckertreibern. Imago kann mit zwei verschiedenen Druckertreibern arbeiten, die unter den Identifikatoren 21 und 22 eingetragen sein mssen. Setzt man hinter die ID 21 und 22 ein kleines r, so wird der entsprechende Treiber beim Booten resident geladen, so daá festplatten-lose zum Ausdruck nicht nach der Bootdisk whlen mssen. Ist GDOS mit Druckertreibern installiert, erscheint nach Klick auf Druk- ken zun„chst der Fileselektor zur Auswahl der zu druckenden Datei. Es folgt ein Dialog (s. Datei 'Drucken.img'), der in der oberen H„lfte die Bildausmaáe und die maximalen Druckkoordinaten zeigt, in der unteren H„lfte stehen die Parameter zur Skalierung. Fr die Skalierung kann man einen Vergr”žerungsfaktor durch den gleichnamigen Button setzen. In der Regel empfiehlt es sich, dazu einen linken und oberen Rand anzugeben, da GDOS nicht die volle Fl„che bedrucken kann, die der Druckertreiber als maximale Druckkoordinaten meldet. Durch den Rand wird gew„hrleistet, daž nicht Teile der Grafik abgeschnitten werden. Wieviel Rand n”tig ist, muž man ausprobieren. Die Skalierung des Bildes geschieht so, daá die Ausmaáe eines gedachten Rahmens im Druckerkoordinatensystem angegeben werden. In diesen wird die Grafik derart eingepaát, daá sie unverzerrt ausgegeben werden kann. Der Rahmen kann seinerseits auf dem Papier durch Angabe eines linken und oberen Randes positioniert werden. Beispiel: Eine Grafik sei 200*200 Pixel groá. Nun soll sie in einen Rah- men von 1000*1500 Pixel skaliert werden, und dieser Rahmen sei durch einen linken Rand von 100 Pixeln und einen oberen Rand von 0 Pixeln auf dem Papier positioniert. _______1000______ | #-----------# |<-----Papier | | # \ | | | | __ | | | | | | |<-------auf 1000*1000 skalierte #---# | | # / | | Grafik, Original 200*200 |:-)| | #-----------# | #---# | | 1500 | | | | | #-----------# <------Skalierungsrahmen 1000*1500 | ^ | | Rand 100 | | | |_________________| Die Grafik erscheint dann auf dem Drucker aufgeblasen auf 1000*1000 Pixel. Sie bleibt also quadratisch wie das Original, nur 5x so groá. Links bleibt ein Streifen von 100 Pixeln frei = linker Rand. Da der Rahmen 500 Pixel h”her als 1000 Pixel ist, fragt sich, in welcher H”he die Grafik ausgegeben wird. Hier gibt es drei M”glichkeiten, die in der rechten H„lfte des Druck-Dialoges w„hlbar sind: Ist 'oben' gew„hlt, beginnt die Grafik ganz oben im Rahmen. 'Mitte' bewirkt, daá ein oberer Rand von 250 Pixeln frei bleibt. 'Unten' fhrt zu einem oberen Rand von 500 Pixeln auf dem Papier. Wird fr den Rahmen nicht nur ein linker, sondern auch ein oberer Rand angegeben von z.B. 100 Pixeln, verschiebt sich der ganze Rahmen um 100 Pixel nach unten. 3.3. Besonderheiten und 'Merkwrdigkeiten' der Bedienung Ein Doppelklick im aktiven Fenster ruft die Funktion Block - Objekt ein- fgen auf. Im Dialog 'Arbeitsfl„che einstellen' kann man durch Doppelklick auf die Pfeile die Bildgr”áe auf einen Schlag um Bildschirmgr”áen ver„ndern. Die Dialoge fr Fllmuster und Linienstil kann man auch durch Doppelklick auf eines der Stilquadrate verlassen. Der Menpunkt 'Volle Fl„che' steuert die F„higkeit von Imago, ber Fen- sterr„nder hinaus Objekte zu zeichnen. Die Funktion ist abschaltbar, da naturgem„á das Zeichnen in voller Fl„che seine Zeit braucht. Sollen der Mausbewegung folgend viele gleiche Objekte gezeichnet werden, kann es sinnvoll sein, nur im Fenster zu zeichnen, um eine h”here Geschwindig- keit zu erhalten. Der Menpunkt 'Tonsignale' schaltet einen Signalton an oder aus, der im- mer dann ert”nt, wenn ein Objekt erfolgreich gezeichnet wurde. Durch die Tastenkombination Ctrl W oder durch Esc werden die Fenster gewechselt. Durch Ctrl U oder Alt Del werden Fenster geschlossen. Durch Ctrl F10 wird das oberste Fenster auf maximale Gr”áe gebracht und in die linke obere Bildschirmecke gesetzt. Mit den Cursortasten kann von Hand gescrollt werden. Undo bewirkt ein Undo seit der letzten Aktion fr das gesamte Bild. In der Lupe wird durch Klick in den kleinen Bildausschnitt in der oberen H„lfte des Dialoges der Lupenausschnitt beweglich und kann frei verscho- ben werden. Durch Rechtsklick kehrt man dann in die normale Lupe zu- rck. Ein Wort zur Benutzung des GEM-Klemmbretts. Ich habe mich hier weit- gehend an die Vorgaben des Profibuches gehalten. Das GEM-Klemmbrett ist ein Ordner namens CLIPBRD, der ber eine be- kannte Speicherstelle im System allen Programmen bekannt ist. Er soll dazu verwendet werden, um ohne viel Nachdenken Daten zwischen Pro- grammen austauschen zu k”nnen. So kann man im einen Programm Daten auf dem Klemmbrett ablegen, ein anderes Programm aufrufen und dort einfach aus dem Klemmbrett einen Text, eine Tabelle oder eine Grafik einfgen. Dadurch spart man sich lange Pfad-wechsel im Objekt-Auswahl- Dialog. Besonders unter MultiTOS wird das sehr praktisch sein. Voraussetzung ist, daá sich im Klemmbrett immer genau ein Objekt befin- det, das dann geladen werden kann. Es muá stets SCRAP heiáen. Was fr eine Datei es ist, geht aus der Endung hervor. Erlaubt sind auáerdem nur bestimmte Formate, fr Pixelgrafik das IMG-Format. Imago l”scht al- so alle Dateien namens SCRAP, die es vorfindet und legt im Klemmbrett immer ein SCRAP.IMG ab. Auáerdem sorgt Imago dafr, daá ein Ordner 'Clipbrd' auf Laufwerk C: oder A: angelegt wird, wenn kein Klemmbrett vorgefunden wird. Wie greift man nun in Imago auf das Klemmbrett zu? Zun„chst arbeiten die Funktionen Block ausschneiden, kopieren und einfgen standardm„áig nur im Speicher. Wenn aber der Schalter 'auf GEM-Klemmbrett' eingeschaltet wird, wird die entsprechende Funktion ber das Klemmbrett vollzogen. Block kopie- ren oder ausschneiden fhrt nun also dazu, daá dieser Block im Klemm- brett abgelegt wird. Block einfgen fgt nun stets ein, was sich im Klemm- brett befindet, nicht was im Speicher steht. Abgesehen davon kann jederzeit durch 'Datei - aus Klemmbrett' der Inhalt des Klemmbretts als Bild geladen werden. 'Datei - auf Klemmbrett' legt das oberste Bild im Klemmbrett ab. 3.4. Speicherverwaltung Imago enth„lt eine flexible Steuerung fr das Problem, daá Programme nicht allen verfgbaren Speicher anfordern sollten. šber eine Datei IMAGO.INF kann konfiguriert werden, wieviel Speicher Imago fr Bilder und Blocks anfordert, und wieviele Bilder Imago intern verwaltet. Mit Hil- fe des in Imago eingebauten Texteditors kann sie leicht erstellt und ver- „ndert werden. Einfach Text - Standard aufrufen, schreiben und nach Links- und Rechtsklick den Text als IMAGO.INF abspeichern. Die Datei muá sich im selben Ordner wie Imago befinden. (Fr Insider: sie wird durch Shel_find() gesucht). Sie hat folgendes Format: 500000 #erste Zeile: gewnschter Speicherplatz in Bytes (!) 7 #zweite Zeile: Anzahl der Bilder, die Imago verwaltet #in den folgenden Zeilen darf beliebig viel Kommentar stehen, wichtig ist #nur, daá in den beiden ersten Zeilen am Anfang die genannten #Werte stehen. Das Kommentarzeichen ist '#'. Im obigen Beispiel werden 500.000 Bytes angefordert und Imago richtet sich darauf ein, gleichzeitig sieben Bilder zu verwalten. Die Zahl 7 hat nichts damit zu tun, wie viele Fenster insgesamt offen sind. Imago kommt also damit zurecht, wenn andere Programme schon beliebig viele Fenster offen haben, und ”ffnet ungerhrt seine eigenen sieben. Allerdings darf die Bilderzahl fr Imago 256 nicht berschreiten. Die Angabe der Bytes darf auch 0 und negativ sein. 0 bewirkt, daá der gesamte Speicher angefordert wird. Ein negativer Wert bedeutet Imago, so viel Speicher zu allozieren, daá der angegebene Betrag frei bleibt. -500000 als Angabe fhrt also dazu, daá auf alle F„lle 500.000 Bytes fr die Allgemeinheit brig bleiben. Auch die Fensterzahl darf 0 sein, dann nimmt Imago den Standardwert von 7 Bildern an. Wenn keine Datei Imago.INF vorhanden ist, stellt sich Imago auf sie- ben Bilder ein und schnappt sich den gr”áten verfgbaren Speicherblock. Was geschieht, wenn die gewnschten Einstellungen nicht durchfhrbar sind? Dann zeigt Imago den verfgbaren Restspeicher an, und erkundigt sich, wieviel davon alloziert werden soll. Zur Auswahl stehen 50%, 75% und alles, was geht. 4. Pl„ne Fr die n„chste Zukunft ist geplant, Imago auf Farbbetrieb einzurichten. Was kommt, mache ich auch von etwaiger Resonanz abh„ngig. (Seufz! Ist je- mand dort drauáen?) 5. Bugs, M„ngel Z.Zt. arbeitet Imago nur auf Atari-Videohardware. Die F„higkeit von Imago zum Zeichnen in voller Fl„che h„ngt damit zusammen. Nach meinem bisherigen Kenntnisstand gibt es da auch keinen leichten Ausweg. Enhancer von den Behnes l„uft anscheinend nicht auf allen Rechnern, und den Memory.sys aus SpeedoGDOS habe ich noch nicht zum Funktionieren gebracht. Ich w„re sehr dankbar, wenn sich jemand finden wrde, der Imago auf Grafikkarten testen k”nnte, damit ich die entsprechenden Anpassungen vornehmen kann. Auáerdem sind die bewegten Grafikobjekte nur sehr viel langsamer und flimmernd auf beliebiger Hardware zu realisieren. Fr einen 1040 w„re das mit den derzeitigen Methoden nicht mehr zumutbar, Imago kriecht hier eh schon arg. Trotzdem: Wir arbeiten ununterbrochen daran. ;-) Es wird wohl einen "Kompatibilit„tsschalter" geben. Imago speichert „uáerst gemtlich. Das ist ein šberbleibsel aus der Zeit, als Imago nicht zuviel RAM anfordern sollte, da es einmal unter 1MB neben Tempus Word laufen sollte. So wird direkt aus dem Speicher auf die Platte komprimiert, anstatt in einem Zwischenpuffer ein fertiges IMG zu erzeugen, um dieses dann in einem Rutsch zu speichern. Ich habe mir aber jetzt CCD's Assemblertutorial gekauft, und da w„re es doch gelacht... . Schaumermal.