Entwickler-Ecke

Multimedia / Grafik - BMP vergrößert ausdrucken


tony89 - Di 23.03.10 18:18
Titel: BMP vergrößert ausdrucken
Hallo,
ich versuche einen Screenshot zu drucken. Alles klappt soweit, aber das Problem ist, das die Bmp.datei zu klein gedruckt wird. Wie kann ich sie vergrößern...
So wie ich es jetzt geschrieben habe, kommt die Fehlermeldung, dass ein Operator bzw. ; fehlt

Danke schon mal

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
rect: TRect;
begin
Bmp:=TBitmap.Create;
Bmp.LoadFromFile('c:\temp\bild.bmp');
Printer.Title:='c:\temp\bild.bmp';
  Printer.BeginDoc;
  Printer.Canvas.Draw(0,0,Bmp);
  rect:=Bounds(0,0,printer.pagewidth div 2, printer.pageheight div 2);
  Printer.Canvas.StretchDraw(rect(0,0,Printer.PageWidth,Printer.PageHeight),Bmp);
  Printer.EndDoc;

end;

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Yogu - Di 23.03.10 18:35

Moin und :welcome:, user profile icontony89!

Du versuchst, auf die Funktion Rect zuzugreifen, die ein Rechteck zurückgibt - allerdings hast du rect in der Prozedur als lokale Variable definiert und greifst somit auf diese Variable zu.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
rect: TRect;
begin
Bmp:=TBitmap.Create;
Bmp.LoadFromFile('c:\temp\bild.bmp');
Printer.Title:='c:\temp\bild.bmp';
Printer.BeginDoc;
Printer.Canvas.Draw(0,0,Bmp);
rect:=Bounds(0,0,printer.pagewidth div 2, printer.pageheight div 2);
Printer.Canvas.StretchDraw(rect(0,0,Printer.PageWidth,Printer.PageHeight),Bmp);
Printer.EndDoc;

end;

Entweder musst du die Variable umbenennen, oder über Classes.Rect() auf die Methode zugreifen :idea:

Was anderes: Hast du die Zeile Printer.Canvas.Draw(0,0,Bmp); absichtlich dringelassen oder vergessen zu löschen? Der von dir gepostete Code würde das Bild zweimal zeichnen.

Grüße,
Yogu


tony89 - Di 23.03.10 19:30

DANKE....funktioniert alles super!!!

Gibt es auch die Möglichkeit, den Screenshot im QUERFORMAT zu drucken?


Jakob_Ullmann - Di 23.03.10 19:51

Hab gerade kein Delphi zur Hand, aber soweit ich weiß gab's da Printer.Orientation oder so.