|
|
home
Imagemaps in VB - einfach und sicher produziert & angezeigt
|
ein fast schon alltägliches Problem: über einem Hintergrundbild
sollen entsprechende Aktionen ausgeführt werden. Im Web ganz einfach
- Bild und Imagemap mit Verweisen.
Unter VB kommen wir leider mit den Standardelementen nicht
weiter, es sei denn, wir beschränken uns auf die rechteckigen Dinge
des Lebens, was bei der geplanten Anwendung, nämlich Markieren
verschiedener Regionen auf den Karten europäischer Länder, eben
nicht möglich war.
|
 |
Was ist also zu tun?
|

Amazon
|
Tja, unter Windows gibt es dafür die
GDI-Regions. Aus den Bildchen lassen sich Masken erzeugen
und daraus dann Regions. Im Web finden sich hierzu auch einige
Beispiele. Einen guten Einstieg findet man im "Appleman".
Das ganze geht ungeheuer fix und ist der "native" Windows Weg.
Da kann der Grafiker aber erst mal wenig mit anfangen, der
arbeitet nämlich mit Photoshop, lässt sich gelegentlich auf Pixel
herab und hält Twips für einen neuen Schokoriegel. Allerdings steht
bei ihm der Kunde jede Woche auf der Matte und möchte ein paar
"kleine Änderungen" im Layout. |
Wie kriegen wir also die beiden unter einen Hut?
Die Idee: lassen wir doch den Grafiker die Dinge machen, wie er es
gewöhnt ist und verwenden einfach seine Masken.
Die Einzelteile

|
Grundlage für die Markierung der ausgewählten Regionen oder
Länder waren drei verschiedene Grafiken:
Ein Hintergrundbild, eine dazu gehörende Maske mit reinen Farben
und für jede Region jeweils eine Grafik der hervorgehobenen Region
samt ihrer Position auf dem Hintergrund. |

|
Wie bringen wir die Einzelteile zusammen?
Ein kleines Hilfsprogramm liest uns die Masken ein. Dabei werden
einfach alle Pixelfarben in ein Array mit den RegionsIDs übersetzt. Die
Hintergrundbilder und die Bilder der Regionen samt ihren Positionen
übernehmen wir bei jedem Neuentwurf in die Ressourcen. Bei einem Mousemove
Ereignis über dem Hintergrund erhalten wir dann durch nachgucken an der
entsprechenden Array Position die gewünschte Region. Das Array kann noch
etwas komprimiert werden, wenn die IDs in Low und High der Integerwerte
abgelegt werden.
Natürlich, mit Regions und GDI gehts etwas flotter, diese Lösung ist
aber flott programmiert und der Grafiker kann jederzeit seine Änderungen
ohne unser Zutun durchführen.
top
|
|