VAPS XT入门系列14:动态加载图片

系列索引:VAPS XT4.2.1入门系列索引

VAPS XT使用ImageTable加载图片,图片添加到工程中后会被处理成vtbl格式的资源文件,实际上就是将图片解码为原始数据并保存。

但是这样有一个问题,程序运行时会将所有资源加载进内存。如果PC本身硬件配置较低(国企申请比较麻烦,并且硬件一旦部署不坏不换),图片资源一多就会导致程序崩溃。

如果可以像DLL一样,使用的时候再加载资源,就会节省很多硬件资源。

先创建一个空白工程。

project

然后添加一个Format用于显示图片。

format

在Tables->ImageTable中添加一个新ImageTableElement(添加的图片格式只能是bmp/png)。

imagetableelement

我使用的测试图片为8K高清修复版的1927年索尔维会议合照,jpg格式大小为9.2MB,使用FFmpeg将其转换为png后大小为42MB。

在Format中添加一个Image控件,用于显示图片。

image

使用Ctrl+F6编译运行程序

resources

程序启动之后占用内存为200M。

size

程序大小为148M。

将ImageTable的图片的Properties中的PictureFormats调整为FILENAME表示从文件中加载图片文件。

properties

编译运行会发现是黑屏,很明显是图片没有加载。

我们使用exe文件所在的文件夹中的启动脚本*.bat运行。

执行之后会等待一段时间(1-2S,毕竟要加载图片进内存,而且图片越大加载时间越长,不过一般是图片几百K,但是数量多)。

result

可以看出生成的exe文件变小了,占用的硬件资源也变小了。

缺点就是切换图片会耗时。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!