如何使用 Delphi 10.3.3 使 TImage 具有高 DPI 感知能力?

How to make TImage high-DPI aware using Delphi 10.3.3?

我正在使用 TImage 组件来显示图像文件。但是,在高 DPI 显示器中显示时,图片看起来很模糊。如果我使用高分辨率图像,它们在普通显示器中会被拉伸并且看起来很糟糕。

我知道 Delphi 10.4 有内置的 TVirtualImage 组件。我正在寻找 Delphi 10.3.3 VCL 应用程序的解决方法。

  • 将不同分辨率的图片文件放入TImageCollection

  • 在您的表单上添加一个 TVirtualImageList 并根据需要设置其 宽度高度

  • 将该图像添加到 TVirtualImageList

  • 将方法 UpdateImage 添加到您的表单,内容如下:

    Image1.Picture.Bitmap := nil;
    VirtualImageList1.GetBitmap(0, Image1.Picture.Bitmap);
    
  • OnCreateOnAfterMonitorDpiChanged 处理程序UpdateImage 调用

  • =14=]