Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi png transparent drucken (https://www.delphipraxis.net/172435-png-transparent-drucken.html)

Volker Z. 6. Jan 2013 00:30

AW: png transparent drucken
 
Hallo,

es tut mir leid aber ich kann es jetzt nicht nachvollziehen warum erst ein Rechteck auf dem Canvas der Bitmap gezeichnet werden soll/muss und dabei Brush.Color clWhite sein sollte.
Delphi-Quellcode:
   b.Transparent:= false;
   b.Canvas.Brush.Color:= clWhite;
   b.Canvas.Rectangle(0, 0, Image1.Picture.Graphic.Width, Image1.Picture.Graphic.Height); // Rectangle zeichnet meines Wissens über die Eigenschaft Pen nicht Brush
Anschließend das Bitmap mittels Assign sowieso "überschrieben" wird.
Delphi-Quellcode:
 b.Assign (Image1.Picture.Graphic);
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   b : TBitmap;
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');
  b := TBitmap.Create;
  try
    b.Assign (Image1.Picture.Graphic);
    Printer.BeginDoc;
    Printer.Canvas.Draw (20, 20, b);
  finally
    FreeAndNil (b);
    Printer.EndDoc
  end
end;
Funktioniert bei mir tadellos (ich habe die Eigenschaft Transparent der TImage-Komponente über den Objektinpektor auf True gesetzt). An ein Druckertreiberproblem möchte ich jetzt nicht glauben.

Gruß

Pfaffe 6. Jan 2013 09:40

AW: png transparent drucken
 
Heute morgen funktioniert Dein Lösungsvorschlag.
Schon komisch was sich über Nacht so alles ändern kann!

Pfaffe 7. Jan 2013 10:42

AW: png transparent drucken
 
Hallo Volker,

heute morgen ging Deine Routine wieder nicht.
In der Tat hängt es vom Drucker ab. Z.B. funktionert es auf den pdf-Drucker eDocPrintPro 3.17.7, aber nicht auf den pdf-Drucker pdf-Factory 4.

png funktioniert nicht auf allen Druckern:
Delphi-Quellcode:
lPNG:= TPngImage.Create;
lPNG.LoadFromFile(ProgrammOrdner + 'Logo.png');
b:= TBitmap.Create;
try
  b.Assign(lPNG);
  printer.Canvas.StretchDraw(20, 20, 2500, 2500, b);
finally
  FreeAndNil(b);
  FreeAndNil(lPNG);
end;
jpg funktioniert:
Delphi-Quellcode:
lJPG:= TJPEGImage.Create;
lJPG.LoadFromFile(ProgrammOrdner + 'Logo.jpg');
b:= TBitmap.Create;
try
  b.Assign(lJPG);
  printer.Canvas.StretchDraw(20, 20, 2500, 2500, b);
finally
  FreeAndNil(b);
  FreeAndNil(lJPG);
end;
jpg funktioniert:
Delphi-Quellcode:
lJPG:= TJPEGImage.Create;
lJPG.LoadFromFile(ProgrammOrdner + 'Logo.jpg');
try
  printer.Canvas.StretchDraw(20, 20, 2500, 2500, lJPG);
finally
  FreeAndNil(lJPG);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 2 von 2     12   

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