![]() |
Bilder spiegelverkehrt?
hi, habe folgenden code, und schaffe es nicht, die bilder richtigrum zu drucken, sie werden immer spiegelverkehrt gedruckt, wieso?
Delphi-Quellcode:
so wird die funktion aufgerufen:
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;
Delphi-Quellcode:
eigentlich müsste es unten links 1/4tel eines dina4 blattes einnehmen, tut es auch, nur spiegelverkehrt! :wiejetzt: woran liegt es? danke
with Printer do
begin BeginDoc; SetMapMode(Canvas.Handle, MM_LOMETRIC); Standardvnew(Canvas, 0, -2760, 1015, -1380, OpenPictureDialog2.FileName, 0); EndDoc; end; |
Re: Bilder spiegelverkehrt?
Wegen BitBlt. Was es genau damit auf sich hat findest du mit der Suche!
Einfach gesagt abstrahiert diese Methode nicht vom verwendeten Device. Verwendest du die Canvas.Draw Methode steht alles richtig rum (StretchDraw für StretchBlt). Gruß Der Unwissende |
Re: Bilder spiegelverkehrt?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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