Autor Beitrag
Nait
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 14.10.10 16:21 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 14.10.10 16:58 
So was?

ausblenden 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;
}

_________________
Gruß
Christoph
Nait Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 14.10.10 22:12 
sollte alles möglich sein....

ausblenden 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
}

_________________
Gruß
Christoph