Forum: PC-Programmierung ARGB Bild wird nicht transparten WARUM?


von Andre (Gast)


Lesenswert?

HALLO!!!


ich möchte zwei Bild überlagern und dafür eins der Bild transparent 
machen.
1
  BitmapData bmData = localBitmap.LockBits(new Rectangle(0, 0, localBitmap.Width, localBitmap.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
2
3
4
int stride = bmData.Stride;
5
            System.IntPtr Scan0 = bmData.Scan0;
6
7
8
 unsafe
9
            {
10
                byte* p = (byte*)Scan0;
11
                int nOffset = stride-localBitmap.Width*4;
12
13
for ( int u = 0; u< localBitmap.Height; u++)
14
                {
15
                    for( int v= 0; v< localBitmap.Width; v++)
16
                     {
17
                            p[0] = 125;
18
                            p[1] = 125;
19
                            p[2] = 0;
20
                            p[3] = 255;
21
                            
22
                       
23
                        
24
                        p+=4;
25
26
                    }
27
28
                    p+= nOffset;
29
                }
30
            }
31
32
            localBitmap.UnlockBits(bmData);
33
34
35
           
36
            
37
            
38
            return localBitmap;
39
40
41
        }

Welche von den p[0] = 125;
                            p[1] = 125;
                            p[2] = 0;
                            p[3] = 255;

ist denn jetzt der Alphakanal. Ich hätte gedacht  p[3] = 255;

Aber das Bild wird nicht transparent. Kann mir jemand weiterhelfen.
Danke Gruss
Andre

von Klaus W. (mfgkw)


Lesenswert?

vielleicht für p[3] Werte kleiner als 255 verwenden?

von Andre (Gast)


Lesenswert?

ich versuchs mal

von Andre (Gast)


Lesenswert?

Das bringt nichts

von Klaus W. (mfgkw)


Lesenswert?

ich verstehe auch nicht, was du vorhast.
Welches Bild willst du darstellen? Mit den jeweils ersten drei Werten 
machst du ein vorheriges Bild platt.
Außerdem ist mir RGBA geläufiger als ARGB. Vielleicht ist bei dir alpha 
vorne?

von Andre (Gast)


Lesenswert?

Nein P[0] ist blau

von Klaus W. (mfgkw)


Lesenswert?

dann musst du wohl mal die Doku zu deinem BitmapData suchen...

von Bernd H. (geeky)


Lesenswert?

Speicher die ge-alphate-Bitmap doch mal als png und überprüf da mit 
irgendnem Bildbearbeitungsprogramm ob Alpha geklappt hat.
Vllt. liegts ja am Zeichnen-Code und nicht an der Alpha-Bitmap...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.