![]() |
png transparent drucken
Mit canvas.StretchDraw male ich ein transparentes png, jedoch wird der Hintergrund schwarz dargestellt.
Warum? Habe bereits alles mögliche ausprobiert. Z.B. TPNGImage.Draw, auch verschiedene andere png's. |
AW: png transparent drucken
Kenne das Problem zwar nicht, aber keine Farbe ist erst einmal Schwarz, da Wert 0 für schwarz steht. Evtl. solltest transparent gegen weiß tauschen oder die Png auf ein weißes Feld legen.
|
AW: png transparent drucken
Wie kann ich zur Laufzeit in einem tranparenten png einen weißen Hintergrund einziehen?
|
AW: png transparent drucken
Die Komponente kann mit transparenten PNGs umgehen:
![]() |
AW: png transparent drucken
Ich würds mal so versuchen
Delphi-Quellcode:
Gruß,
Canvas.Brush.Color:=clWhite;
Canvas.Rectangle(0, 0, Width, Height); Toni |
AW: png transparent drucken
Hallo Toni, bei Deinem Vorschlag wird die angegebene Fläche weiß gemalt.
Hallo schlagzu, ich setze Delphi XE ein und das TPNGImage kann mit Alphakanälen umgehen. Da ich selbst bei anderen Projekten Graphic32 einsetze habe ich versucht die GR32 PNG library zu installieren, was mir aber kurzfristig noch nicht gelungen ist. Wenn ich vor dem StretchDraw ein (ImageLogo1.Picture.Graphic as TPNGImage).RemoveTransparency; setze, dann ist der Hintergrund nicht mehr schwarz, jedoch ist der Vordergrund, also das Bild um welches mir geht, verschmiert. |
AW: png transparent drucken
Hallo,
ich kann mit
Delphi-Quellcode:
prima ein transparentes PNG auf das Form-Canvas zeichnen. Wo willst Du eigentlich zeichnen?
procedure TForm1.FormCreate(Sender: TObject);
begin Image1.Picture.LoadFromFile ('D:\Program Files (x86)\Embarcadero\RAD Studio\10.0\Images\GlyFX\glyFX\glyFX\Icons\Aero\PNG\256x256\arrow_left_256.png'); end; procedure TForm1.FormDblClick(Sender: TObject); begin Canvas.Draw (0, 0, Image1.Picture.Graphic) // oder auch mit StrechDraw end; Gruß |
AW: png transparent drucken
Auf den Drucker (printer.Canvas) will ich das transparente png ausgeben. Die Ausgabe auf den Bildschirm ist kein Problem.
|
AW: png transparent drucken
Hallo,
Delphi-Quellcode:
Klappt bei mir.
procedure TForm1.Button1Click(Sender: TObject);
var b : TBitmap; begin b := TBitmap.Create; try b.Assign (Image1.Picture.Graphic); Printer.BeginDoc; Printer.Canvas.Draw (0, 0, b); Printer.Canvas.StretchDraw (Rect (80, 0, 180, 100), b) finally Printer.EndDoc; FreeAndNil (b) end end; // Über den Objektinspektor noch die Eigenschaft Image1.Transparent := True setzen Gruß |
AW: png transparent drucken
Hallo Volker,
Deine Lösung funktioniert noch nicht ganz. Berücksichtigt man noch den Tipp von Toni, dann kommt folgende funktionierende Lösung raus:
Delphi-Quellcode:
var
b: TBitmap; begin Image1.Transparent:= true; Image1.Picture.LoadFromFile('TestBild.PNG'); b:= TBitmap.Create; b.Transparent:= false; b.Canvas.Brush.Color:= clWhite; b.Canvas.Rectangle(0, 0, Image1.Picture.Graphic.Width, Image1.Picture.Graphic.Height); try b.Assign(Image1.Picture.Graphic); printer.BeginDoc; Printer.Canvas.Draw(20, 20, b); // Printer.Canvas.StretchDraw((Rect(20, 1000, Image1.Picture.Graphic.Width*2, Image1.Picture.Graphic.Height*2), b) finally FreeAndNil(b); printer.EndDoc; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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