Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Polygon x% mit transparenter Farbe füllen (https://www.delphipraxis.net/33282-polygon-x-mit-transparenter-farbe-fuellen.html)

gitta 4. Nov 2004 11:49


Polygon x% mit transparenter Farbe füllen
 
Hallo Zusammen,

in diesem Forum gibt es mehrere Threds über "Transparentz"
Jedoch habe ich keinen Eintrag gefunden wie ich ein Polygon
oder ähnliches variabel Transparent füllen kann.

Wie kann ich bitte das folgende Polygon z.B.: 20% mit der Farbe
füllen so das der Hintergrund durchscheint?

Canvas.Brush.Color := clRed;
Canvas.Polygon([Point(10, 10), Point(30, 10),
Point(130, 30), Point(240, 120)]);


Gruß Gitta

Airblader 4. Nov 2004 13:48

Re: Polygon x% mit transparenter Farbe füllen
 
Du kannst es so machen, wie mir mit transparentem Text geholfen wurde ;)
*anmerk* Ein paar Themen weiter unten im Multimedia-Board.

Theorie:
Du erstellst ein neues Bild, dass du mit einer Hintergrundfarbe ungleich der Farbes des Polygons füllst.
In der Prozedur wird nun jeder Pixel abgelaufen.
ist der aktuelle Pixel gleich die angegebene HG-Farbe, so wird die Farbe des Pixels auf die Farbe des entspr. Pixels des Ziel-bildes gesetzt.

Ist es ungleich der HG-Farbe, d.h. es handelt sich um einen Punkt IM polygon, so wird die farbe mit der farbe des entspr. pixels des ziel-bildes mit der alpha-blending-formel unter einbezug der deckkraft-angabe verrechnet und gesetzt.

So hast du am Ende per Pixel-Manipulation das neue Bild wo das Polygon transparent auf dem Zielbild ist :)

gitta 4. Nov 2004 16:52

Re: Polygon x% mit transparenter Farbe füllen
 
Hallo Airblader,

erstmal Danke für die Antwort.
Das klinkt ja mächtig kompliziert und sicherlich sehr Zeitraubend.
Ich hoffe das es eine andere Möglichkeit gibt. Ich habe ein stück
Code gefunden um ein ganzes Form über den Alpha-Kanal Transparent zu machen.
So etwas suche ich. Wenn ich etwas finden sollte werde ich es auch hier
posten.

Gruß Gitta.

Airblader 4. Nov 2004 17:31

Re: Polygon x% mit transparenter Farbe füllen
 
Eine ganze Form transparent zu machen ist ja nicht schwer ;)

Ich dachte du willst das alles innerhalb eines TImage's machen, d.h. wie in einem Grafikprogramm ? :gruebel:

gitta 4. Nov 2004 17:52

Re: Polygon x% mit transparenter Farbe füllen
 
Hallo Airblader,

ich habe ein ActiveX Control welches mir eine Landkarte anzeigt.
Ich greife mir das Canvas-Handle und zeichne ein
Polygon um einen Ort. Dieses Polygon hätte ich gerne 80% Transparent
so dass das Polygon noch sichbar ist aber zugleich auch die
darunter liegende Ortskarte.

Gibt es dafür eine einfachere Möglichkeit?

Gruß Gitta

Airblader 4. Nov 2004 18:12

Re: Polygon x% mit transparenter Farbe füllen
 
Hm..ich kenn mich mit ActiveX nun nicht aus, aber da es auch mit Canvas behandelt wird, würde ich sagen, könntest du "meine" Methode nehmen.

So langsam ist sie auch nicht ;)

Und mit der Code-Vorlage aus meinem Thread dürfte es nicht zu schwer sein die Funktion umzubauen

air


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz