Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi canvas image vergrößen (https://www.delphipraxis.net/90713-canvas-image-vergroessen.html)

punker-lili 22. Apr 2007 17:01


canvas image vergrößen
 
ich bin blutiger anfänger im programmieren, deshalb bräuchte ich eure hilfe. ich habe es hinbekommen, dass ich mit canvas ein image ausdrucken kann, jedoch klebt der oben in der linken ecke und ist viel zuklein. Wie kann ich den vergrößern...
Code:
procedure TForm1.Drucken1Click(Sender: TObject);
begin
  if printdialog1.execute then
    begin
        printer.begindoc;
        printer.canvas.draw(0,0,Image1.Picture.Graphic );
        printer.enddoc;
    end;
  end;
Danke schonmal im voraus...
Anna

bitsetter 22. Apr 2007 18:12

Re: canvas image vergrößen
 
Hallo,

ich hatte mal dafür eine Procedure geschrieben:
Delphi-Quellcode:
Procedure DruckPos(iLeft, iTop, Zoom: integer; Graphic: TGraphic);
begin
  Printer.BeginDoc;
  SetMapMode(Printer.Canvas.Handle, MM_ISOTROPIC);
  SetWindowExtEx(Printer.Canvas.Handle, 1, 1, nil);
  SetViewportExtEx(Printer.Canvas.Handle, Zoom, Zoom, nil);
  Printer.Canvas.Draw(iLeft, iTop, Graphic);
  Printer.EndDoc;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DruckPos(50, 80, 12, Image1.Picture.Bitmap);
end;
Es gibt sicherlich noch andere Möglichkeiten.

punker-lili 22. Apr 2007 18:16

Re: canvas image vergrößen
 
Danke :thumb:

Dellphi 15. Jun 2010 14:59

AW: canvas image vergrößen
 
ja, die einfachste möglichkeit waäre, das canvas des images auf das des druckers zu kopieren also:

if PrintDialog1.Execute then begin
with Printer do begin
Orientation:=poLandscape;
BeginDoc;
Canvas.copyrect(Rect(0,0,PageWidth,PageHeight),Bil d.Canvas,Rect(0,0,Bild.Width,bild.Height));
EndDoc;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz