【问题标题】:Getting new width and height of Bitmap in a TImage if Wrapmode is set to "Fit"如果 Wrapmode 设置为“Fit”,则在 TImage 中获取位图的新宽度和高度
【发布时间】:2021-09-28 17:00:39
【问题描述】:

我正在将5000x5000 png 图像加载到 TImage 上,并将 wrapmode 设置为 Fit。然后我想获得在 UI 中显示的位图的高度和宽度,但是我似乎只获得了位图的原始大小,而不是正在显示的图像的大小。

我正在加载位图如下:imgMap.Bitmap.LoadFromFile('map_4000_35161.png');

当调整 TImage 的大小时,正在显示的位图的大小会发生变化,以便它可以适应 TImage 的内部;

如何获取正在显示的位图的宽度和高度?

我尝试过imgMap.Bitmap.WidthimgMap.Bitmap.Canvas.Width,但最终只得到了原来的 5000 大小

【问题讨论】:

    标签: delphi firemonkey delphi-10.4-sydney


    【解决方案1】:

    位图是您的源位图,它不会调整大小,而是在TImage 上呈现时,它会被呈现以适应TImage。 AFAIK,除非您自己调整大小,否则无法获得该渲染的结果。

    不过,您可以获得TImage 的大小。这还不够吗?如果您要保留纵横比,那么计算具有已知纵横比并包含边界的矩形的大小是相当简单的。

    【讨论】:

    • 我明白了。谢谢你。我认为可能有一些属性可以访问,而不是自己计算。我会这样做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2017-07-12
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多