Entwickler-Ecke

Multimedia / Grafik - Transparente Farbe im Image


Nait - Do 14.10.10 16:21
Titel: Transparente Farbe im Image
Hi Leute,

nachdem ich überglücklich OOP in Delphi für Win32 verstanden habe, hab ich mich kurze Zeit später auf C# gestürzt und es gefressen. Problem is nur, dass ich nun C# auch nur mit Delphi 2005 programmiere und OBWOHL ich das Framework 3.0 habe, bin ich gezwungen 1.1 zu nutzen. War auch sehr witzig, Listen ohne Generics zu machen... Derzeit kommt auch kein Herunterladen anderer Entwicklungsumgebungen in Frage, also muss ich eine kunstvolle Lösung für folgendes Problem entwickeln:

Wie kann ich bei einem Image / einer PictureBox eine Farbe transparent machen?

Alternativ wäre es auch interessant, wie ich aus dem Image jedes Pixel heraus- und wieder einlesen könnte, denn Color.FromARGB({transparenz}, {rot}, {grün}, {blau}) kann ich verarbeiten und damit zur Not alle Bilder transperentieren.


Christoph1972 - Do 14.10.10 16:58

So was?


C#-Quelltext
1:
2:
3:
4:
5:
6:
private Bitmap SetTransparent(Bitmap vectorImage)
{
    Color c = vectorImage.GetPixel(1010);//<- bei mir der Hintergrund
    vectorImage.MakeTransparent(c);
    return vectorImage;
}


Nait - Do 14.10.10 19:47

prinzipiell ja. Für ein Bitmap ist es perfekt, aber die Klasse Image stellt diese Befehle nicht bereit. Denn mein Ziel war es eigentlich, die Transparenz für jeden Bildtyp (allgemein - eben Image) zu ermöglichen, also auch den Metafiles (wenn zum Beispiel ein JPG geladen werden würde). Doch auch die Metafile-Klasse hat diese Befehle nicht.

Sinnlosen Unterfangen von mir oder gibts ein Hintertürchen?


Christoph1972 - Do 14.10.10 22:12

sollte alles möglich sein....


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
private Image SetTransparent(Image image)
{
    Bitmap imageX = new Bitmap(image);

    Color c = imageX.GetPixel(1010);
    imageX.MakeTransparent(c);

    return imageX as Image;//<-geht auch ohne casting
}