![]() |
Wie kann ich die angezeigte Größe des Images ermitteln?
Hallo liebe Community,
ich habe ein TImage, in das mit dem OpenDialog Bilder geladen werden können. Das wird dann auf eine Größe von max. 500*500 Pixel proportional skaliert. (Strech und Proportional=true) Wie kann ich die tatsächlich angezeigte Größe ausgeben (die, die kleiner oder gleich 500*500 ist)? Liebe Grüße loirad |
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
TImage.Picture.Width und TImage.Picture.Height
|
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Vielen Dank für die Antwort!
Da bekomme ich aber die urspünglichen Werte des Originalbildes, die (in dem Fall) größer als 500*500 sind raus. Ich möchte aber auf das Canvas dieses Bildes in die Mitte was zeichnen! |
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Delphi-Quellcode:
Procedure GetFittingHW(OuterW,OuterH:Integer;var InnerW,InnerH:Integer);
var vh:Double; begin Assert((OuterW<>0) and (OuterH<>0),'Division durch 0'); if (InnerW /OuterW) < (InnerH /OuterH) then vh := (InnerH /OuterH) else vh := (InnerW /OuterW); Assert((vh<>0) ,'Division durch 0'); InnerW := Round(InnerW/vh); InnerH := Round(InnerH/vh); end; procedure TForm3.Button1Click(Sender: TObject); var w,h:Integer; begin w := image1.Picture.Width; h := image1.Picture.Height; GetFittingHW(Image1.Width,image1.Height,w,h); Showmessage(Format('Breite: %d Höhe %d',[w,h])); end; |
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
OK, dann hatte ich deine Frage falsch verstanden.
Dafür gibt es leider keine direkt verfügbare Funktionalität. Du kannst aber über entweder über einen Hack oder einen Class Helper and die Funktion DestRect herankommen, die dir das gewünschte Rechteck liefert.
Delphi-Quellcode:
type
TImageHelper = class helper for TImage function EffectiveRect: TRect; end; function TImageHelper.EffectiveRect: TRect; begin result := DestRect; end; |
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Danke für die Antwort!
Kann man das nicht direkt aus dem Image auslesen oder so? |
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Habe es jetzt so gelöst:
Delphi-Quellcode:
Vielen Dank für eure Hilfe!if (Bild1.Picture.Height<>0) and (Bild2.Picture.Height<>0) then begin if Bild1.Picture.Height<Bild1.Picture.Width then begin B1w:=Bild1.Width; B1h:=round(((Bild1.Picture.Height)/(Bild1.Picture.Width))*Bild1.Width); end else begin B1w:=((Bild1.Picture.Height) div (Bild1.Picture.Width))*Bild1.Width; B1h:=Bild1.Width; end; Schöne Rest-Woche noch! loirad |
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Das Ergebnis stimmt hier aber nicht ...
|
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Warum was funktioniert nicht?
|
AW: Wie kann ich die angezeigte Größe des Images ermitteln?
Du berücksichtigst nicht dass Image und Bild jeweils beliebige Seitenverhältnisse haben können.
Code:
gef .H 133 gef. B 177
Imageh. 177 Imageb. 97 Bildh. 301 Bildb. 401 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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