VB-Homepage Tipp 284

Transparente Grafiken ohne API

Fragen zu Thema "transparente Grafiken" gehören wohl zu den am meisten gestellten, gerade von Einsteigern.
Es geht also um die Möglichkeit, Grafiken in ihrer eigentlichen freien Form anzuzeigen und nicht in einem viereckigen Objekt eingefangen.

Ab VB4 können Sie zum anzeigen solcher Grafiken sogar gänzlich VB eigene Mittel verwenden. Einschränkend muß ich aber gleich betonen, daß das zu Ungunsten der Geschwindigkeit ausfällt.

Aber entscheiden Sie doch selbst, ob dies für Ihr Zwecke reicht.

Ablauf
1.  Ermitteln der Position und der Größe des Bereiches in dem die scheinbar transparente Grafik dargestellt werden soll. Dieser Bereich (der Hintergrund) wird in einen Zwischenspeicher kopiert.

2.  Nun wird aus dem darzustellenden Bild die transparente Farbe heraus gerechnet. Es wird eine Maske erstellt, die die Grafik schon mit Ihren Kontoren zeigt, aber nur in schwarz/weiß. Alle transparente Teile sind dabei weiß und alle anzuzeigen Teile schwarz.
Dann wird über die Funktion SRCAND diese Grafik auf den zwischengespeicherten Hintergrund gelegt und mit der UND Funktion verbunden. Dadurch erhalten die weißen Teile die Originalfarbe des Hintergrunds, während die schwarzen Teile die Kontur des Objekt abbilden.

3.  Nun wird in den neu entstandenen Ausschnitts des Hintergrunds, das eigentliche Objekt eingefügt, dabei müssen alle transparent darzustellenden Teile schwarz sein. Dies erfolgt über die Funktion SRCPAINT.

4.  Der so entstandene manipulierte Bildausschnitt (Hintergrund und Grafikobjekt) wird nun über den originalen Ausschnitt kopiert.

Vielleicht können Sie jetzt besser nachvollziehen, warum diese Prozedur einiges an Rechenzeit benötigt.

Da wir es wieder mit Grafik zu tun haben, komm ich um einen Download nicht herum. Aber auch gut, so läßt sich das Ganze gleich in einem fertigen Projekt nachvollziehen.

Für Ihre eigenen Projekte benötigen Sie ein Programm, mit dem Sie die notwendigen Masken erstellen können.
ABER WOHER NEHMEN ?
In dem zusätzlichen Download habe ich ein eigenes kleines Programm zur Maskenerstellung gepackt.
Für eine private Nutzung ist es Freeware.


Tipp-Download / Tool-Download

Quelle :

Zurück zur Übersichtsseite