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.
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ß