Name:
startimagemap.lg (CGI-Skript)

Syntax:
startimagemap.lg

Beschreibung:

startimagemap.lg ist ein CGI-Skript, das von einem WWW-Server gestartet wird. Es wird durch die Environment-Variablen QUERY_STRING und PATH_INFO gesteuert. Die Variablen werden vom WWW-Server entsprechend einer WWW-Anfrage gesetzt.

startimagemap.lg wird innerhalb der HEART-2DPAGE zur Verwaltung der sensitiven Bildern atrium.quadrant[1-4].gif und ventricle.quadrant[1-4].gif ( [1-4]: eine Zahl im Bereich 1 bis 4) benötigt.

Sensitive Bilder

Sensitive Bilder (Imagemaps) sind Bilder, bei denen der Benutzer per Mausklick Bereiche innerhalb eines Bildes auswählen kann. Je nach geklicktem Bereich werden unterschiedliche Aktionen ausgelöst. Imagemaps beruhen auf Inline-Bildern. Der folgende Tag erzeugt ein Imagemap:

<A HREF = "url"> <IMG SRC = "bild.gif" ISMAP> </A>

url gibt den URL des CGI-Skriptes an, das vom Server nach der Mausselektierung ausgeführt werden soll. Dem CGI-Skript werden die Mauskoordianten relativ zur linken oberen Ecke mitgeteilt. Das Skript ermittelt anhand dieser Koordinaten den selektierten Bereich und führt die zugehörige Aktion aus. Im Allgemeinen werden Bereich und Aktion in einer Konfigurationsdatei (Mapdatei) definiert sein. Das Attribut ISMAP zeigt dem Client an, daß bild.gif kein gewöhnliches Bild, sondern ein sensitives ist. Die Übergabe der Mauskoordianten vom Client an den Server geschieht im URL. Dazu wird an url der Term ?x,y angehängt - x,y stellt die numerische Koordinatenangabe dar. Der Server erhält den URL url?x,y und wandelt ihn gemäß der CGI-Spezifikation um: Das Paar x,y wird in die Environment-Variable QUERY_STRING eingetragen. Das Skript liest die Variable aus, ermittelt anhand der Koordinate den selektierten Bereich und führt die in der Mapdatei zugeordnete Aktion aus.

Innerhalb der HEART-2DPAGE wird als auswertendes CGI-Skript das Programm Imagemap verwendet. Es verwaltet mehrere sensitive Bilder. In obigen URL url muß daher zusätzlich eingetragen werden, um welches sensitives Bild es sich handelt. Dies geschieht durch:

<A HREF = "url/map"> <IMG SRC = "bild.gif" ISMAP> </A>

Imagemap besitzt eine Konfigurationsdatei, in der allen sensitiven Bildern eine Mapdatei zugeordnet ist. map kann damit eindeutig einer Mapdatei zugeordnet werden. Erst die Mapdatei enthält die Zuordnung zwischen selektiertem Bereich und der auszuführenden Aktion.

Beispiel:

<A HREF = "http://www.chemie.fu-berlin.de/cgi-bin/dhzb/imagemap/atrium">
<IMG SRC = "ATRIUM_GRID.gif" ISMAP>
</A>

Startimagemap.lg

Die HEART-2DPAGE basiert auf den Gel-Bildern ATRIUM_ORIG.gif und VENTRICLE_ORIG.gif. Zu jedem der beiden Bilder existiert eine Mapdatei atrium.map bzw. ventricle.map.

Zusätzlich existieren die Bilder atrium.quadrant[1-4].gif bzw. ventricle.quadrant[1-4].gif ( [1-4] bedeutet: eine Zahl im Bereich 1 bis 4). Die die vier Quadranten der beiden Gel-Bilder in vergrößerter Form darstellen (erstellt durch make_quadrant_images).

Um die vergrößerten Quadrantenbilder atrium.quadrant[1-4].gif und ventricle.quadrant[1-4].gif ebenfalls klickbar zu machen, wären entsprechende Mapdateien nötig. atrium.map und ventricle.map können nicht einfach übernommen werden, da atrium.quadrant[1-4].gif und ATRIUM_ORIG.gif bzw. ventricle.quadrant[1-4].gif und VENTRICLE_ORIG.gif über unterschiedliche Koordinatenachsen verfügen.

atrium.quadrant[1-4].gif bzw. ventricle.quadrant[1-4].gif wurden von ATRIUM_ORIG.gif bzw. VENTRICLE_ORIG.gif durch Vergrößerung und Ausschneiden abgeleitet. D.h. es besteht ein Zusammenhang zwischen den Quadrantenbildern und ihrem jeweiligen Original.

Diesen Zusammenhang nutzt startimagemap.lg. Es bildet die Position eines beliebigen Quadrantenbildpunktes auf die Position des gleichen Punktes im Originalbild ab.

Die Quadrantenbilder können somit sensitiv bei Verwendung der Mapdateien atrium.map und ventricle.map gemacht werden. atrium.quadrant[1-4].gif und ventricle.quadrant[1-4].gif geben, damit sie sensitiv werden, als CGI-Skript nicht imagemap sondern startimagemap.lg an.

startimagemap.lg wandelt die erhaltene Koordiante zunächst um. Der selektierte Punkt aus dem vergrößerten Quadrantenbild wird auf seine ursprüngliche Position im Originalbild (ATRIUM_ORIG.gif bzw. VENTRICLE_ORIG.gif) transformiert. Anschließend wird imagemap mit der berechneten Koordinate aufgerufen und die in der Mapdatei vorgegebene Aktion ausgeführt.

Wichtig:
Die Transformation findet in Abhängigkeit des Vergrößerungsfaktor und eines Offsets statt (die Quadranten überschneiden sich). Wird einer der Werte geändert (make_quadrant_images), so muß das Skript mit den neuen Werten angepaßt werden.

Parameterübergabe

Die Koordinatentransformation ist vom Quadranten abhängig. D. h. startimagemap.lg muß mitgeteilt werden, welches Quadrantenbild seine Ausführung verursachte. Zusätzlich ist die Information nötig, ob es sich um ein Atrium-Bild oder Ventricle-Bild handelt, da imagemap mitgeteilt werden muß, welche Mapdatei verwendet werden soll.

Die Übergabe der Koordinaten vom WWW-Server an startimagemap.lg erfolgt in der Environment-Variable QUERY_STRING, sie muß folgende Form besitzen:

QUERY_STRING = x,y

x,y
Koordinate, die transformiert werden soll.

Die Übergabe des Quadranten und der Bildart (Ventricle, Atrium) geschieht in PATH_INFO in folgender Form:

PATH_INFO = /bildquadrant

bild
Kann den Wert ven oder atr haben.
bild=ven das sensitive Bild ist ventricle.quadrant?.gif,
bild=atr das sensitive Bild ist atrium.quadrant?.gif
quadrant
Gibt den Quadranten an. quadrant darf die Werte 1, 2, 3 und 4 annehmen.

Beispiel:

PATH_INFO = /ven4

Es findet keine Fehlerabfrage statt; d. h. QUERY_STRING und PATH_INFO sollten immer die oben beschriebene Form besitzen!

WWW-Schnittstelle

Um die Bilder atrium.quadrant[1-4].gif bzw. ventricle.quadrant[1-4].gif innerhalb eines HTML-Dokumentes sensitiv zu machen, muß eingetragen werden:

<A HREF = "http://host/cgi-verzeichnis/startimagemap.lg/bildquadrant">
<IMG SRC = "image">
</A>

host
Name des Rechners auf dem der WWW-Server läuft.

cgi-verzeichnis
Verzeichnis in dem sich die CGI-Skripte des Servers befinden. Der Server muß dazu passend konfiguriert sein.

bild
Kann den Wert ven oder atr haben.
bild=ven das sensitive Bild ist ventricle.quadrant?.gif,
bild=atr das sensitive Bild ist atrium.quadrant?.gif.

quadrant
Gibt den Quadranten an. quadrant darf die Werte 1, 2, 3 und 4 annehmen.

image
Gibt das Bild an, das sensitiv gemacht werden soll. Dies kann sein:
atrium.quadrant1.gif, atrium.quadrant2.gif, atrium.quadrant3.gif, atrium.quadrant4.gif,
ventricle.quadrant1.gif, ventricle.quadrant2.gif, ventricle.quadrant3.gif oder ventricle.quadrant4.gif.

Beispiel:

<A HREF = "http://www.chemie.fu-berlin.de/cgi-bin/dhzb/startimagemap.lg/atr3">
<IMG SRC = "http://www.chemie.fu-berlin.de/user/pleiss/images/atrium.quadrant3.gif">
</A>


Zurück zum Inhaltsverzeichnis

Stefan Sander, sanderst@cs.tu-berlin.de, 10/95