![]() |
Image speichern mit Darstellungsgröße
Hallo,
ich möchte mich jetzt schon für den unpassenden Titel entschuldigen. Ich habe ein Bitmap, dieses lade ich in ein Image. Die Originalgröße des Bitmaps ist 2600*2000. In meinem Programm stelle ich das Image immer etwas manipuliert da. Das Bild verändere ich über image.Height bzw. image.width. Jetzt versuche ich das Bild als jpeg abzuspeichern mit
Delphi-Quellcode:
Das Bild wird aber in der Originalgröße abgespeichert. Mir ist schon klar warum und was dort passiert.
jpeg.Assign(image.Picture.Bitmap);
jpeg.SaveToFile(filepath); Mein Frage ist, wie kann ich das Image als Datei abspeichern, so wie ich es auch im TImage sehe? Anders formuliert, ich will das Image genauso in eine Datei ablegen, als ob ich ein Screenshot von dem Image mache. |
AW: Image speichern mit Darstellungsgröße
Wenn das Ergebnis proportional verkleinert werden soll, kannst Du es einmal mit
![]() |
AW: Image speichern mit Darstellungsgröße
Hat jemand vielleicht noch eine andere Idee?
|
AW: Image speichern mit Darstellungsgröße
Ein temporäres Bitmap erfinden und mit BitBlt dort in den gewünschten Dimensionen reinmalen und dieses speichern.
|
AW: Image speichern mit Darstellungsgröße
Was ist denn an meiner Prozedur auszusetzen?
[edit]
Delphi-Quellcode:
Das sollte doch funktionieren, oder nicht?[/edit]
jpeg := TJPEGImage.Create;
try StretchGraphic(image.Picture.Bitmap, jpeg, image.Width, image.Height); jpeg.SaveToFile(filepath); finally jpeg.Free; end; |
AW: Image speichern mit Darstellungsgröße
Leider funktioniert es nicht, oder ich versteh die Funktion falsch. Folgendes gebe ich ein:
Delphi-Quellcode:
try
StretchGraphic(img1.Picture.Bitmap, jpeg, 2600, 10000); jpeg.SaveToFile(filepath); finally jpeg.Free; end; |
AW: Image speichern mit Darstellungsgröße
Ich dachte, Du willst das Bild in der Größe des TImage haben. Wieso gibst Du dann diese riesigen Dimensionen an? Schau Dir mein letztes Edit noch einmal an, das dürfte eher passen, denke ich.
|
AW: Image speichern mit Darstellungsgröße
Ja da hast du schon Recht, das Problem ist nur, das Originalbild stimmt nicht ganz in der Länge. In meiner Darstellung multipliziere ich mit 5, damit das Bild gestreckt wird. In der Darstellung sieht das auch gut aus, nur als Datei nicht. Mit deiner Funktion ändert sich das Bild proportional, egal ob ich height mal 5 setze.
|
AW: Image speichern mit Darstellungsgröße
Dann ersetz einmal die Zeilen
Delphi-Quellcode:
durch
temp.Width := round(src.Width * faktor);
temp.Height := round(src.Height * faktor);
Delphi-Quellcode:
Die ganze Faktorenberechnung kann damit dann auch entfallen.
temp.Width := DestWidth;
temp.Height := DestHeight; |
AW: Image speichern mit Darstellungsgröße
Jetzt funktioniert es :-D
Vielen Dank für die Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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