![]() |
TImage & Size
Das waren sie wieder, meine Probleme...
Ich möchte Width & Height eines TImage an das geladene Image anpassen. Die Werte kann ich ja mit TImage.Bitmap.Width & Height auslesen, soweit also kein Problem. Was aber, wenn ich die maximale Breite der Komponente auf sagen wir mal 600 pixel beschränken möchte und das Bitmap entsprechend angepasst wird. Es ändert sich also die dargestellte Anzahl der Pixel. Die TImage.Height möchte ich nun auch an die neue Bitmap.Height anpassen, aber wie? Any ideas? |
Re: TImage & Size
Hi,
entschuldige aber was möchtest du genau haben? Wenn du die Größe eines Image änderst, ändert sich natürlich auch der Ausschnitt des Bitmaps, das darin dargestellt werden kann. Nach oben ist die Größe natürlich durch das Bitmap selbst beschränkt. Machst du das Image kleiner, so wird einfach ein Teil abgeschnitten. Wenn ich dich richtig verstehe möchtest du jetzt vermeiden, dass dein Bild an irgendeiner Stelle abgeschnitten wird? Das kannst du ganz leicht erreichen. Setz im Image die Eigenschaft proportional auf True, fertig. Hier werden die Seitenverhältnisse des Bitmap immer bei behalten. Sollte das Bitmap breiter oder höher sein als dein Image, wird es so neu skaliert, dass die max. zur Verfügung stehende Fläche genutzt wird um das Bild (ohne Verzerrung) anzuzeigen. Setzt du auch noch stretched auf True, würde immer die max. Fläche genutzt werden (auch wenn das Image größer als die angezeigte Bitmap ist). Hoffe das war deine Frage. Gruß Der Unwissende |
Re: TImage & Size
Zitat:
|
Re: TImage & Size
Ahso,
dann musst du einfach ein wenig rechnen. Du kennst ja das Verhältnis von der Bitmap.Width zu Bitmap.Height. Dieses muss einfach nur gleich dem Verhältnis von Image.Width zu Image.Height sein. Die Bitmapgrößen sind dir immer bekannt und je nachdem ob du die Größe des Bildes in der Breite oder in der Höhe beschränken möchtest, ist dir auch eine weitere Größe bekannt. Damit hast du eine sehr einfache Gleichung, die du lösen kannst. In deinem Beispiel passt du die Image.Width an. Für die Image.Height muss also gelten:
Delphi-Quellcode:
Analog natürlich wenn du die Höhe anpasst.
Image.Height := Image.Width * round(Bitmap.Height / Bitmap.Width);
So, jetzt aber?! |
Re: TImage & Size
Zitat:
Delphi-Quellcode:
So funzt es, danke! :thumb:
Image.Height := Round(Image.Width * (Bitmap.Width / Bitmap.Height));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz