Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
Turbo Delphi für Win32
|
Transparente Bitmap einfügen
14. Okt 2004, 16:00
Hallo zusammen
Ich möchte auf einen Farbverlauf eine Bitmap mit transparentem Hintergrund kopieren:
Delphi-Quellcode:
function CreateMask(Bitmap: TBitmap): TBitmap;
var
MaskBmp: TBitmap;
begin
MaskBmp:= TBitmap.Create;
with MaskBmp do try
Assign(Bitmap);
Mask(Bitmap.Canvas.Pixels[0, Bitmap.Height - 1]);
MaskHandle
except
MaskBmp.Free;
raise;
end;
Result:= MaskBmp;
end;
procedure DrawTransparent(const DestDC: HDC; const X, Y: Integer; Bitmap: TBitmap);
var
Mask: TBitmap;
begin
Mask:= CreateMask(Bitmap);
try
MaskBlt(DestDC, X, Y, Bitmap.Width, Bitmap.Height,
Bitmap.Canvas.Handle, 0, 0,
Mask.MaskHandle, 0, 0, MAKEROP4(MERGECOPY, SRCCOPY));
// Zweite Variante, geht auch nicht
{ BitBlt(DestDC, X, Y, Bitmap.Width, Bitmap.Height,
Mask.Canvas.Handle, 0, 0, SRCAND);
BitBlt(DestDC, X, Y, Bitmap.Width, Bitmap.Height,
Bitmap.Canvas.Handle, 0, 0, SRCINVERT);}
finally
Mask.Free;
end;
end;
Aber das funktioniert nicht, der Farbverlauf ist im Hintergrund der Bitmap nicht mehr zu sehen...
Kann mir wer helfen?
Gruss
Shaman
Daniel Pauli Looking for answers from the great beyond
|
|
Zitat
|