![]() |
GDI+: Transparenz auf TImage
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Leute!
Wenn ich in ein TImage über die Property Picture ein trasparentes PNG-File lade (TPngImage) dann wird die Transparenz richtig dargestellt. Prima. Wenn ich nun aber mit GDI+ das gleiche Bild mit DrawImage in einem TImage darstelle, dann wird das Bild auf einem weißen Hintergrund gemalt -- kann ich das wohl abstellen und auch hier einen transparenten Hintergrund bekommen? Als Attachment seht ihr das Ergebnis: Das linke ist wird wie gesagt direkt im Object-Inspector des TImage geladen, das rechte mit GDI+ auf ein TImage gemalt. Hier mein GDI+ Code:
Delphi-Quellcode:
procedure TForm1.Draw;
var Graphics : IGPGraphics; gImage : IGPImage; R : TGPRectF; begin gImage := TGPImage.Create('Test.PNG'); Graphics := TGPGraphics.Create(gImage); R.Initialize(0, 0, gImage.Width, gImage.Height); Graphics.CompositingMode := CompositingModeSourceCopy; Graphics.DrawImage(gImage, R); Graphics := TGPGraphics.Create(Form1.Image.Canvas.Handle); Graphics.DrawImage(gImage, R, 0, 0, gImage.Width, gImage.Height, UnitPixel); end; Jemand eine Idee? Lieben Dank & Gruß Jazzman |
AW: GDI+: Transparenz auf TImage
|
AW: GDI+: Transparenz auf TImage
Hallo turboPASCAL,
ja, das Demo sieht genau nach dem aus was ich gesucht habe -- allein ich nutze die GDI+ Library von ![]() Noch jemand mit der Erik'schen Lib unterwegs? Danke & Gruß Jazzman |
AW: GDI+: Transparenz auf TImage
Nun, das ist ja nun keine gute Ausrede, das lässt sich mit Sicherheit auch mit der Lib von Erik realisieren.
Er baut ja auch auf die selbe API auf. ;) |
AW: GDI+: Transparenz auf TImage
Ich erstelle das indem ich den Hintergrund kopiere und auf diesen dann mein Bild zeichne.
PS: Bzw.. den transparenten Hintergrund der PNG mit dem kopierten Hintergrund fülle. gruss |
AW: GDI+: Transparenz auf TImage
Zitat:
Wie machst Du das konkret -- vielleicht ein Beispiel? Vielen Dank. Gruß, Jazzman |
AW: GDI+: Transparenz auf TImage
Zitat:
Das erste ohne Bitblt. Das zweite mit Bitbl. Das sind 4 Zeilen Quelltext :) Mehr brauchst da nicht. PS: Ach so wenn du kein Hintergrund Bitmap hast dann mußt du erst eins mit CreateDIBSection erstellen ;) Zurück geliefert bekommst du dann ein HBITMAP! Das benötigst du dann für das Selektierte Objekt.
Delphi-Quellcode:
SelectObject(MeinKompatiblesDC, MeinHBITMAP);
gruss |
AW: GDI+: Transparenz auf TImage
Das hier sollte auch liefern was du brauchst, und das sogar mit perpixel alpha ;)
![]() Da musste nicht soviel mit DC und erst recht kein Select object etc EDIT: da braucht man nichtmal PNGs, 32bit Bitmaps mit Alphachannel arbeiten damit auch MFG Memnarch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 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-2025 by Thomas Breitkreuz