VAPS XT入门教程20.04:动态加载图片
系列索引:VAPS XT入门教程索引
上一篇:VAPS XT入门教程20.03:调试之trace manager
VAPS XT使用ImageTable加载图片,图片添加到工程中后会被处理成vtbl格式的资源文件,实际上就是将图片解码为原始数据并保存。
但是这样有一个问题,程序运行时会将所有资源加载进内存。如果PC本身硬件配置较低(国企申请比较麻烦,并且硬件一旦部署不坏不换),图片资源一多就会导致程序崩溃。
如果可以像DLL一样,使用的时候再加载资源,就会节省很多硬件资源。
先创建一个空白工程。
然后添加一个Format用于显示图片。
在Tables->ImageTable中添加一个新ImageTableElement(添加的图片格式只能是bmp/png)。
我使用的测试图片为8K高清修复版的1927年索尔维会议合照,jpg格式大小为9.2MB,使用FFmpeg将其转换为png后大小为42MB。
在Format中添加一个Image控件,用于显示图片。
使用Ctrl+F6编译运行程序
程序启动之后占用内存为200M。
程序大小为148M。
将ImageTable的图片的Properties中的PictureFormats调整为FILENAME表示从文件中加载图片文件。
编译运行会发现是黑屏,很明显是图片没有加载。
我们使用exe文件所在的文件夹中的启动脚本*.bat运行。
执行之后会等待一段时间(1-2S,毕竟要加载图片进内存,而且图片越大加载时间越长,不过一般是图片几百K,但是数量多)。
可以看出生成的exe文件变小了,占用的硬件资源也变小了。
缺点就是切换图片会耗时。
经过测试此方法可以用在4.0.1 ~ 4.2.1
技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导