【发布时间】:2009-08-11 18:05:39
【问题描述】:
我希望获取使用 TImage 显示的图像的当前大小,此对象的 Proportional 属性设置为 True 并与主窗体对齐到客户端。因此,在调整表单大小时,我想获得该图像的当前大小,而不是画布大小,也不是该图像的实际大小。获取当前大小我可以显示当前图像大小相对于实际图像大小的百分比。 提前致谢
【问题讨论】:
我希望获取使用 TImage 显示的图像的当前大小,此对象的 Proportional 属性设置为 True 并与主窗体对齐到客户端。因此,在调整表单大小时,我想获得该图像的当前大小,而不是画布大小,也不是该图像的实际大小。获取当前大小我可以显示当前图像大小相对于实际图像大小的百分比。 提前致谢
【问题讨论】:
我认为没有内置的方法可以做到这一点。你可能只需要计算它。像这样的:
Picture属性的高度和宽度。【讨论】:
您可以将 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
【讨论】:
将此图片加载到虚拟 TCanvas(或其他)中,然后将属性 Proportional 保留为 False。现在您可以检索图片的原始大小。如果图像通常很大,也许你应该使用一些外部图形库。
【讨论】: