![]() |
Image strecken nur wenn das Bild > Image.Width ?
Hallo
ich lade große Bilder in TImage. Die Bild werden verkleinert so, dass das Bild komplett in TImage passt. Das Problem ist wenn ich ein sehr kleines Bild oder ein Icon loade, dann wird es an das TImage gestreckt und das möchte ich nicht, da es sehr gepixcelt aussieht. Wie kann ich das Bild in TImage strecken aber nur, wenn das Bild breiter als TImage ist Ist TImage breiter als das Bild, dann soll das Bild drin 100% dargestellt werden
Delphi-Quellcode:
gruß
procedure TForm1.Button1Click(Sender: TObject);
begin if OpenPictureDialog1.Execute then begin Image1.AutoSize := False; Image1.Stretch := True; Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; end; |
Re: Image strecken nur wenn das Bild > Image.Width ?
Setz Stretch auf false, wenn Image.Picture.(Bitmap.)Width < Image.Width...
|
Re: Image strecken nur wenn das Bild > Image.Width ?
Hallo
wenn so mache, dann wird das Bild in TImage nicht angezeigt !
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if OpenPictureDialog1.Execute then begin Image1.AutoSize := False; Image1.Stretch := True; //Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); // ok Image1.Picture.LoadFromFile('test.jpeg'); // so klappt nicht end; // ... jetzt kommt die Überprüfung : If Image1.Picture.Bitmap.Width < Image1.Width then Image1.Stretch := false else Image1.Stretch := true; end; |
Re: Image strecken nur wenn das Bild > Image.Width ?
Hallo,
Zeile 5 kannst du weglassen, sonst setzt du "Stretch" immer zwei Mal. Bei mir funktioniert der Code einwandfrei. Grüße |
Re: Image strecken nur wenn das Bild > Image.Width ?
Hier liegt das Problem :
Delphi-Quellcode:
liegt das an den Typ .jpeg ?
...
//Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); // ok Image1.Picture.LoadFromFile('test.jpeg'); // so klappt nicht |
Re: Image strecken nur wenn das Bild > Image.Width ?
Nutze auch generell absolute Pfade, denn du weißt meist nicht, was dein Arbeitsverzeichnis ist.
Wenn du JPEG-Bilder laden möchtest, musst du die Unit "JPEG" einbinden. Kommt denn irgendein Fehler? |
Re: Image strecken nur wenn das Bild > Image.Width ?
Jpeg ist schon in USES
Es kommt kein Fehler sondern wie es unvisible wäre wenn ich aber ein .bmp nehme, dann geht:
Delphi-Quellcode:
es liegt also nur an .jpeg !
//Image1.Picture.LoadFromFile('test.jpeg');
Image1.Picture.LoadFromFile('test.bmp'); // das Bild wird angezeigt und richtig |
Re: Image strecken nur wenn das Bild > Image.Width ?
welche Delphi-Version verwendest du?
evtl. unterstützt dein TPicture noch kein Jpeg. dann müsstest du das mittels TJPEGFile erst laden und zum bitmap assignen. HTH Frank |
Re: Image strecken nur wenn das Bild > Image.Width ?
Ich habe das Problem gelöst
Ich musste aber ein Bild extra vor Vorschau speichern und dann als Bmp laden Image1.Picture.SaveToFile('test.bmp'); // als bmp speichern Image1.Picture.LoadFromFile('test.bmp'); jetzt ist fast ok, ich muss aber versuchen das Bild mit dem selben Faktor in x und y zu strecken damit das Bild nicht schrecklich in Vorschau Fenster erscheint Gruß |
Re: Image strecken nur wenn das Bild > Image.Width ?
Bist du sicher das die Datei test.jpeg und nicht test.jpg heißt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 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