hi, habe folgenden code, und schaffe es nicht, die bilder richtigrum zu drucken, sie werden immer spiegelverkehrt gedruckt, wieso?
Delphi-Quellcode:
procedure printpicture(PCanvas : TCanvas; px1, py1, px2, py2 : Integer; pkarte : string; pgamma : Smallint);
var gra,gra2 : Tbitmap32;
KRS: TKernelResampler;
begin
gra := Tbitmap32.Create;
gra2 := Tbitmap32.Create;
gra2.Height := (py1 *(-1)) - (py2 * (-1));
gra2.Width := px2 - px1;
gra.LoadFromFile(pkarte);
KRS := TKernelResampler.Create(gra);
KRS.Kernel := TLanczosKernel.Create;
gra.Rotate270();
gra.DrawTo(gra2,gra2.BoundsRect, gra.BoundsRect);
BitBlt(pcanvas.Handle,px1,py1,gra2.Width,gra2.Height,gra2.Canvas.Handle,0,0,SRCCOPY);
gra.Free;
gra2.Free;
end;
so wird die funktion aufgerufen:
Delphi-Quellcode:
with Printer do
begin
BeginDoc;
SetMapMode(Canvas.Handle, MM_LOMETRIC);
Standardvnew(Canvas, 0, -2760, 1015, -1380, OpenPictureDialog2.FileName, 0);
EndDoc;
end;
eigentlich müsste es unten links 1/4tel eines dina4 blattes einnehmen, tut es auch, nur spiegelverkehrt!
woran liegt es? danke