我使用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);
-
在OnCreate和OnAfterMonitorDpiChangedhandler
中调用UpdateImage