BooksXL - Ihr Online Buchshop

 

Home

Projekte

VB Tipps

über mich

projekte

 

 

home english version not yet available

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