设置截图缓存时间 - SetSnapCacheTime
函数简介
设置截图缓存时间,用于在指定时间内复用同一帧截图数据。启用缓存后,在缓存时间内多次调用截图接口(如 GetScreenDataPtr 等)将返回同一帧图像,从而减少实际截图次数,提高整体性能。
接口名称
SetSnapCacheTime
DLL调用
int32_t SetSnapCacheTime(int64_t instance, int32_t cacheTime)
参数定义:
instance(长整型数): OLAPlug 对象的指针,由 CreateCOLAPlugInterFace 接口生成。cacheTime(整型数): 截图缓存时间(毫秒)。0: 不缓存,实时截图,每次调用都会进行一次新的截图>0: 在指定毫秒数内缓存截图,在缓存时间内返回缓存图像
示例:
// 设置截图缓存时间为 100 毫秒
int32_t ret = SetSnapCacheTime(ola, 100);
if (ret == 1) {
printf("已设置截图缓存时间为 100 ms\n");
// 在 100ms 内多次调用截图接口,将复用同一帧图像
long img1 = GetScreenDataPtr(ola, 0, 0, 800, 600);
long img2 = GetScreenDataPtr(ola, 0, 0, 800, 600);
if (img1 != 0) FreeImagePtr(ola, img1);
if (img2 != 0) FreeImagePtr(ola, img2);
}
// 关闭截图缓存,恢复实时截图
SetSnapCacheTime(ola, 0);
返回值
整型数:
0: 操作失败1: 操作成功
注意事项
- 截图缓存只在指定的缓存时间内生效,超过缓存时间后会自动重新截图并更新缓存帧。
- 截图缓存基于屏幕内容,当屏幕变化频率较高且对实时性要求高时,建议将缓存时间设置为
0或较小的数值。 - 对于频繁调用截图且画面变化不大的场景(如轮询识别、短时间内多次查找),建议启用适当的缓存时间以提高性能。
- 此接口只影响截图相关接口(如
GetScreenDataPtr等),不会影响其他图像处理或窗口相关接口。
