如何在Delphi 2009中获取图像的当前视图大小

时间:2009-08-11 18:05:40

标签: delphi size timage

我希望获得使用TImage显示的图像的当前大小,此对象将Proportional属性设置为True并与具有主窗体的Client对齐。因此,在调整表单大小时,我想获得该图像的当前大小,而不是画布大小也不是该图像的实际大小。获取当前大小我可以显示当前图像大小相对于实际图像大小的百分比。 提前致谢

3 个答案:

答案 0 :(得分:4)

我认为没有内置的方法可以做到这一点。你可能只需要计算它。像这样:

  1. 获取画布的高度和宽度。
  2. 获取图片的Picture属性的高度和宽度。
  3. 计算图片尺寸与画布尺寸的比率。
  4. 两个比率中较小的一个是您的百分比。

答案 1 :(得分:1)

您可以将Image1.Picture.Width或.Height与Image1.Width或.Height进行比较。

要知道图像是否使用水平或垂直尺寸成比例拉伸,您应该比较两者的比率:

if Image1.Width/Image1.Height > Image1.Picture.Width/Image1.Picture.Height then 
  Result:=Image1.Picture.Width/Image1.Width
else
  Result:=Image1.Picture.Height/Image1.Height;

使用数学技巧将分割转换为乘法,您可以避免转换为浮点值,这也可以通过使用以下方式更快地计算:

if Image1.Width*Image1.Picture.Height >Image1.Picture.Width*Image1.Height then

答案 2 :(得分:0)

将此图片加载到虚拟TCanvas(或其他)中,然后将属性Proportional保留为False。现在您可以检索图片的原始大小。如果图像通常很大,也许你应该使用一些外部图形库。