BitBlt(......, SRCINVERT) macht mein Bild transparent

Tobias K.

Erfahrenes Mitglied
moin


Wenn ich BitBlt mit dem Parameter SRCINVERT aufrufe wird mein Bild transparent, was es aber nicht soll.

Warum tut es das?
Wie kann man es vermeiden?


mfg
umbrasaxum
 
SRCINVERT macht ein XOR zwischen dem neuen und dem alten Bild, das führt zu dem Transparenzeffekt (src XOR dest).

Wenn du das neue Bild haben willst musst du einfach SRCCOPY oder SRCPAINT machen, je nachdem was du brauchst

Siehe auch :

SRCCOPY src Copies the source directly to the destination.
SRCAND src AND dest Blacks out sections of the destination that correspond to the black areas in the source and leaves sections that line up with white areas in the source untouched.

SRCINVERT src XOR dest Inverts the source onto the destination. When used twice, restores destination to its original state. Can also be used instead of SRCPAINT under certain conditions.

SRCPAINT src OR dest Paints the nonblack sections of the source onto the destination. Black sections of the source do not alter the destination. Black sections of the destination are painted by the source.
 
moin


Was willst du mir damit sagen?
Ich möchte ein Bild invertiert ohne transparents darstellen.


mfg
umbrasaxum
 
moin


So ich habs jetzt:
Code:
BitBlt(hDC, karte[i].posingame.x, karte[i].posingame.y, nKarX, nKarY,
	hdcmem, karte[i].posindat.x, karte[i].posindat.y, WHITENESS);
BitBlt(hDC, karte[i].posingame.x, karte[i].posingame.y, nKarX, nKarY,
	hdcmem, karte[i].posindat.x, karte[i].posindat.y, SRCINVERT);

Man muss BitBlt 2 mal aufrufen, "WHITENESS | SRCINVERT" also beides in einem BitBlt geht nicht.


mfg
umbrasaxum
 
Zurück