delphi - 如果 Wrapmode 设置为 "Fit",则获取 TImage 中位图的新宽度和高度

标签 delphi firemonkey delphi-10.4-sydney

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

我按如下方式加载位图:imgMap.Bitmap.LoadFromFile('map_4000_35161.png');

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

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

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

最佳答案

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

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

关于delphi - 如果 Wrapmode 设置为 "Fit",则获取 TImage 中位图的新宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68467457/

相关文章:

android - 带有字符串元素的 Delphi XE7 Android Record 无法编译

android - 在 Delphi 中与 Mifare DESFire 通信

delphi - 右键单击不会更新 TControlList 中的 ItemIndex

delphi - 枚举常量属性不流式传输

delphi - SHGetFolderPath 对我不起作用

windows - 应用效果时,MakeScreenshot 未正确渲染

delphi - 程序加载期间添加的菜单项的 Vcl 样式问题

android - 无法使用 Delphi 10.4 在 Android 中加载 sqlite 库

Delphi 10.4 本地化问题

delphi - 子窗体总是在父窗体之上