3

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

4

3 回答 3

4

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

  1. 获取画布的高度和宽度。
  2. Picture获取图像属性的高度和宽度。
  3. 计算图片尺寸与画布尺寸的比率。
  4. 这两个比率中较小的一个就是您的百分比。
于 2009-08-11T18:24:46.927 回答
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
于 2009-08-12T12:21:13.623 回答
0

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

于 2009-08-12T07:31:27.257 回答