![]() |
JPEG aus TImage in bestimmter Größe drucken
Hallo!
Ein Bild drucken, kann man ja mit z.B. folgendem Codeschnipsel:
Delphi-Quellcode:
Nun habe ich aber das Problem, dass das Bild meist in seiner Originalgröße ausgedruckt wird, oder aber noch kleiner. Ich habe mich auch schon hier durch die DP gesucht, durch Google gesucht, etc. aber ich finde einfach nichts passendes.
procedure PrintBitmap(aGraphic: TGraphic, Title: string);
begin Printer.Title := Title; Printer.BeginDoc; Printer.Canvas.Draw(0, 0, aGraphic); Printer.EndDoc; end; Was ich eigentlich nur will: Ein Bild aus einer TImage-Komponente so zu drucken, dass es auf dem Papier nachher bestimmte Maße (cm) hat. Ist das Bild in der TImage zu groß, soll es eben auf diese Maße verkleinert, ist es zu klein, vergrößert werden (unproportional). Aber ich habe bisher nichts passendes dazu gefunden... :( MCXSC |
Re: JPEG aus TImage in bestimmter Größe drucken
Hallo
Schau dir mal diesen codeschnipsel zum proportionalen resizen an ... nicht beim drucken, aber eventuell hilfts als zündfunke ... Ein bild als tImage soll so in ein Panel eingeblendet werden, daß es optimal groß proportional dargestellt wird.... Image12.Parent wäre das Panel, wäre in deinem Fall der canvas des blattes zum drucken ... ?
Delphi-Quellcode:
{ JPEGImage }
ms1.Seek(0, soFromBeginning); jpg3.LoadFromStream(ms1); { Resize } if (Image12.Parent.ClientWidth>0) and (jpg3.Width>0) then begin { Seitenverhältnis Container } r1 := (Image12.Parent.ClientHeight/Image12.Parent.ClientWidth); { Seitenverhältnis Bild } if (jpg3.Width>0) then r2 :=(jpg3.Height/jpg3.Width) else r2 := 0.0; { Container passend zum Bild in Übergeordneten Panel einpassen, damit Stretch automatisch funktioniert } if (r1>r2) then begin { Container ist im Verhältnis höher als Bild, also auf Breite anpassen } { Faktor damit Bild so breit wie Container wird } r1 := Image12.Parent.ClientWidth/jpg3.Width; Image12.Width := Image12.Parent.ClientWidth; Image12.Left := 0; Image12.Height := Trunc(r1* jpg3.Height); Image12.Top := (Image12.Parent.ClientHeight-Image12.Height) div 2; end else begin { Container ist im Verhältnis breiter als Bild, also auf Höhe anpassen } { Faktor damit Bild so hoch wie Container wird } r1 := Image12.Parent.ClientHeight/jpg3.Height; Image12.Height := Image12.Parent.ClientHeight; Image12.Top := 0; Image12.Width := Trunc(r1* jpg3.Width); Image12.Left := (Image12.Parent.ClientWidth-Image12.Width) div 2; end; Image12.Picture.Assign(jpg3); end; |
Re: JPEG aus TImage in bestimmter Größe drucken
Hallo,
Dein Drucker hat eine bestimmte Auflösung xxx dpi (dots per inch) also Punkte pro 2,54 cm. Du mußt Dein Bild dann so vergrößern oder verkleinern das es die Größe auf dem Drucker erreicht die Du mit der dpi Angabe berechnet hast. Beispiel:
1800 / 300 -> 6 inch -> 6 * 2,54 cm -> ca. 15cm Wenn Du das Bild dann kleiner haben willst, kannst Du das Bild verkleinern. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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