Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TImage32 Transparent machen (https://www.delphipraxis.net/67819-timage32-transparent-machen.html)

berens 20. Apr 2006 12:50


TImage32 Transparent machen
 
Hallo!

Ich verwende das TImage32 von http://www.g32.org/. Ich möchte nun einen Überblendeffekt realisieren bzw. dieses Bitmap einfach nur halb durchsichtig machen.

Mit der Eigenschaft Bitmap.MasterAlpha und Bitmap.DrawMode := dmBlend sollte das funktioneren. In allen Demos die mitgeliefert sind, klappt das. Wenn ich jedoch eine neue Anwendung erstelle, ein TImage32 einfüge, das Bitmap lade und diese Optionen einstelle (sagen wir MasterAlpha auf 30) dann sehe ich das Bild - sehr schwach, quasi in Grau - kann jedoch _nicht_ hindurchsehen (so dass also die dahinterliegende Graphik sichtbar wird wie in den Demos.

ImgView_Layers_Ex mit mehreren Layern ist das passende Beispiel. Irgendwelche Ideen?

Danke im Vorraus, Mathias

Remote1 23. Apr 2006 15:09

Re: TImage32 Transparent machen
 
klingt interessant und kann ich bestimmt auch mal gebrauchen
deswegen #push# (sorry)

berens 23. Apr 2006 15:13

Re: TImage32 Transparent machen
 
Ich habe die Sache so leider nicht direkt lösen können, sondern das Projekt aus dem Beispiel nachprogrammiert, sprich: kein TImage32 sonder wie folgt:
Delphi-Quellcode:
 
  FImgView := TImgView32.Create(Self);
  FImgView.Parent := Self.Form;
  FImgView.Align := alClient;
  FImgView.ScrollBars.Visibility := svHidden;
  FImgView.Visible := true;

  FBild1 := TBitmapLayer.Create(FImgView.Layers);
  FBild1.Bitmap.DrawMode := dmBlend;
  FBild1.Bitmap.MasterAlpha := 255;
  FBild1.Scaled := true;
  FBild1.Bitmap.Width := Self.Form.Width;
  FBild1.Bitmap.Height := Self.Form.Height;
  FBild1.Location := FloatRect(0, 0, Self.Form.Width, Self.Form.Height);
  FBild1.Visible := true;

  FBild2 := TBitmapLayer.Create(FImgView.Layers);
  FBild2.Bitmap.DrawMode := dmBlend;
  FBild2.Bitmap.MasterAlpha := 0;
  FBild2.Scaled := true;
  FBild2.Bitmap.Width := Self.Form.Width;
  FBild2.Bitmap.Height := Self.Form.Height;
  FBild2.Location := FloatRect(0, 0, Self.Form.Width, Self.Form.Height);
  FBild2.Visible := true;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz