AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImage & Size

Ein Thema von trockentaucher · begonnen am 28. Jul 2006 · letzter Beitrag vom 28. Jul 2006
Antwort Antwort
Benutzerbild von trockentaucher
trockentaucher

Registriert seit: 25. Nov 2003
Ort: Dortmund
41 Beiträge
 
Delphi 7 Professional
 
#1

TImage & Size

  Alt 28. Jul 2006, 13:21
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?
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: TImage & Size

  Alt 28. Jul 2006, 13:42
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
  Mit Zitat antworten Zitat
Benutzerbild von trockentaucher
trockentaucher

Registriert seit: 25. Nov 2003
Ort: Dortmund
41 Beiträge
 
Delphi 7 Professional
 
#3

Re: TImage & Size

  Alt 28. Jul 2006, 13:52
Zitat von Der_Unwissende:
Hi,
Hoffe das war deine Frage.
Gruß Der Unwissende
Nein, nicht ganz... proportional & stretch sind nicht das Problem. Die Size der Komponente ist das Problem. Die soll sich nach jedem laden eines Images an die Imagegröße anpassen, es sei denn die Höhe und/oder Breite des Images überschreiten ein definiertes maximum. In diesem Fall lege ich Beispielsweise die Width von TImage fest und möchte das gleiche dann proportional mit der Height machen.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: TImage & Size

  Alt 28. Jul 2006, 13:58
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:
Image.Height := Image.Width * round(Bitmap.Height / Bitmap.Width); Analog natürlich wenn du die Höhe anpasst.

So, jetzt aber?!
  Mit Zitat antworten Zitat
Benutzerbild von trockentaucher
trockentaucher

Registriert seit: 25. Nov 2003
Ort: Dortmund
41 Beiträge
 
Delphi 7 Professional
 
#5

Re: TImage & Size

  Alt 28. Jul 2006, 15:19
Zitat von Der_Unwissende:
Ahso,
So, jetzt aber?!
Fast!

Image.Height := Round(Image.Width * (Bitmap.Width / Bitmap.Height)); So funzt es, danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz