Einzelnen Beitrag anzeigen

Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Maximale image/Bild-Darstellungsgröße anzeigen/ berechne

  Alt 17. Okt 2009, 12:39
Okaydokay! Aber dann solltest du nicht mit Screen.Width und Screen.Height arbeiten, sondern mit Form.Width und Form.Height. Denn deine Anwendung ist ja nicht im Vollbildmodus...

//edit: Der Fall c=1 funktioniert nur richtig, wenn deine Form genauso breit wie hoch ist!

So gehts:

uses math;
Delphi-Quellcode:
procedure ResizeImageProportional(aImage:TImage;FormWidth,FormHeight:integer);
var ratio:single;
    newwidth,newheight:integer;
begin

ratio:=aImage.picture.width/aImage.picture.height;

if ratio>1 then
  begin
   newheight:=min(round(FormWidth/ratio), FormHeight);
   newwidth:=round(newheight*ratio);
  end
else //ratio<1
  begin
   newwidth:=min(round(FormHeight*ratio),FormWidth);
   newheight:=round(newwidth/ratio);
  end;

aImage.Left:=0;
aImage.top:=0;
aImage.width:=newwidth;
aImage.height:=newheight;

end;
Aufrufen mit:

Delphi-Quellcode:

ResizeImageProportional(Image1,Form1.Clientwidth,Form1.Clientheight);
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat