【问题标题】:How to get the current view size for an image in Delphi 2009如何在 Delphi 2009 中获取图像的当前视图大小
【发布时间】:2009-08-11 18:05:39
【问题描述】:

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

【问题讨论】:

    标签: delphi size timage


    【解决方案1】:

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

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

    【讨论】:

    • 该死!我距离发布相同的答案只有三个键击和点击!你太快了,梅森。
    【解决方案2】:

    您可以将 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
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-04
        • 2010-09-15
        • 1970-01-01
        • 2015-12-19
        • 2023-04-05
        • 2010-10-06
        • 1970-01-01
        • 2012-09-24
        相关资源
        最近更新 更多