Alpha Blending?

P

Paranoxx

Hallo,

wie ist es denn möglich in C# AlphaBlending anzuwenden?
Also nehmen wir an ich habe ein Bild (PNG), in diesem Bild gibts einen Alpha Kanal, wie setze ich das nun auf die Form das der Hintergrund der Form mit ausgeblendet wird? Also wenn ich z.b. einen Kreis hätte als Bild und ich möchte alles was weiter von der Mitte weg ist mehr ausblenden, wie geht das? Also das passende Bild hätt ich schon erstellt, ich müsste also nur wissen wie dann der Form bereich langsam weggeblendet wird je nach Alpha einstellung des Bildes!
Bzw. ist es möglich ein zweites Image einzubinden welche den Alpha bereich liefert? Da gäbe es ja dann 2 farben, Schwarz und weiß und alles was in richtung weiß geht wird weggeschnitten (oder andersrum?) So würde mir das auch reichen wenns über ne normale PNG nicht geht!


Hoffe es war so deutlich ausgedrückt.

Gruß...Paranoxx!
 
Kennt vielleicht einer eine bessere methode?
Den Link den ich da oben gepostet hab hilft mir net, ich peil das nicht wirklich...

Alles was ich will ist das die pictureBox auf meinem Formular "weggeblendet" aussieht, also Oben normal und je weiter es nahc unten geht je deutliches seh ich was unter dem Formular ist!
*Help*
 
Bitte, schau Dir mal an wie das Alpha Blending funktionieren. GDI+ beitet dir auch die Möglichkeit in Bild in Bildausschnitte zu unterteilen. Jeden Bildausschnitt weißt einfach ein anderes Blending zu und fertig.

Da hast noch ein paar Links:
GDI+ Fading
GDI+ Fading Image Away
 
Ich wollt ja das sich meine Form auch ausblendet...
Hab das jetzt auch soweit hinbekommen das es ein PNG so anzeigt wie ich will, kann jetzt aber keine Steuerelemente verwenden weil die Methode einfach nurnoch das Image anzeigt und der rest is weg... Muss ich wohl mit leben :-/
Trotzdem danke...
 
Bei der Form kannst ja eine Opacity angeben und so das Teil mitausblenden .... Ist ja nicht der Auftrag ...
 
@Norbert Eder: Ich danke dir für deine bisherige Hilfe und deine Geduld(!), hat mich auch schon mal einen Schritt nach vorne geworfen was das verständnis bezüglich C# und GDI angeht!

Vielleicht reden wir auch grad bisschen einander vorbei, wenn ja tuts mir leid, kann aber gerne nochmal versuchen meine Frage zu wiederholen so detailiert wie möglich ;)

Also:
Ich habe ein Formular (Name: Form1), auf diesem Formular will ich ein Bild darstellen welches im PNG Format vorliegt. Dieses Bild beinhaltet unter anderem Transparenz. Wenn ich eine pictureBox auf meine Form1 lege und das PNG reinlade nimmt die Picturebox an den stellen wo sie Transparenz werden sollte die BackColor eigenschaft der Form1 an.
Wenn ich jetzt allerdings möchte das die pictureBox nicht die BackColor eigenschaft von der Form annehmen soll, sondern das Anzeigen soll was sich UNTER der Form befindet, wie geht das? Also so als wäre Form1 einfach unsichtbar und das Image scheint dann durch. Ich möchte aber dennoch alle Steuerelemente nutzen (Buttons etc.) geht das?
Also nochmal zur verdeutlichung:

- Form1 soll "unsichtbar" sein, Steuerelemente wie Buttons aber dennoch sichtbar.
- PNG auf dieser Form sollen alles was sich unter der Form1 befindet anzeigen so als würde ich die Opacity eigenschaft der Form benutzen.

Die Opacity methode nützt mir hier aber nichts weil ich ja dann nichtsmehr sehen würde, weder eine pictureBox noch ein Commandbutton!

@Norbert Eder: Zu deinem letzten Post: Die Opacity methode nützt mir ja aber nichts (Wenn ich dich richtig verstehe)
Die Form soll sich ja nicht in sinne vom Fading ausblenden (Durchscheinen) sondern sie soll NUR an den stellen an dem mein Image Transparent ist AUCH Transparent sein. Vielleicht versteh ich dich auch falsch, ich denke meine Fragestellung war diesmal ausführlich genug.


Mal ein kleines Beispiel zur verdeutlichung.
Nehmen wir an ich habe in Photoshop (oder vergleichbarer Software) einen verlauf gemacht der von Schwarz langsam ins völlige Transparente verläuft.

Ich möchte dieses Bild jetzt auf meine Form packen das diese auch langsam von Schwarz bis transparent durchscheint ohne das dieses Image die BackColor eigenschaft annimmt (Standartmäßig Color.Control)
 

Neue Beiträge

Zurück