![]() |
Wie benutzt man MaskBlt richtig ?
Hallo Leutz,
Habe im Forum gesucht, aber es gitb irgendwie keine Functionierende Variante Ich will ein Transparentes TBitmap mittels MaskBlt zeichnen mein bisheriger Ansatz :
Delphi-Quellcode:
weis mir jemand was ich da falsch mache ?Function CreateMask(Bitmap: TBitmap): TBitmap; Var MaskBmp: TBitmap; Begin MaskBmp := TBitmap.Create; With MaskBmp Do Try Assign(Bitmap); Mask(clfuchsia); MaskHandle Except MaskBmp.Free; Raise; End; Result := MaskBmp; End; .. // Erzeugen der Graphiken fWerm_Rechts := GraphikEngine.LoadGraphik(Pfad + 'Werm_Rechts.bmp');// Liefert Tbitmap mit Pixelformat pf24bit fWerm_Rechts.transparentcolor := clfuchsia; fWerm_Rechts.transparent := True; Mask_Rechts := CreateMask(fWerm_Rechts); .. MaskBlt(Canvas.handle, 10, 10, 24, 18, fWerm_Rechts.canvas.handle, 0, 0, Mask_Rechts.MaskHandle, 0, 0, MAKEROP4(MERGECOPY, SRCCOPY)); // was bereits geht ( aber eben ohne Transparents ) ist (* BitBlt(Canvas.Handle, 10, 10, 24, 18, fWerm_Rechts.Canvas.Handle , 0, 0, SRCCOPY); *) |
Re: Wie benutzt man MaskBlt richtig ?
Mask Handle vorher auf den DC selektieren mit SelectObject()?
|
Re: Wie benutzt man MaskBlt richtig ?
solltest du
Delphi-Quellcode:
meinen so ist die antwort NEIN, das geht nicht.
SelectObject(canvas.handle, Mask_Rechts.MaskHandle);
wenn ich das rein mache Rendert er mir nur die Maske und zerstört sogar das destination komplett. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz