https://blog.youkuaiyun.com/xpg4321/article/details/112358449 介绍了如何枚举mac系统的窗口。
下面介绍如何截取窗口图像。
1.获取窗口信息
参考前一节介绍的mac枚举窗口函数获取窗口信息。
if(nullptr == _screen_caputre)
break;
bool b = _screen_caputre->caputreWindow(_record_windows, (char *)_buffer, true);
error = b?AE_NO:AE_ERROR;
2.截图
CGImageRef mainimageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, _main_record_window.Handle, kCGWindowImageNominalResolution | kCGWindowImageShouldBeOpaque);
依旧使用CGWindowListCreateImage进行截图与截屏类似,只是参数变了,这里需要的是窗口句柄。
3.获取RGB数据
auto width = CGImageGetWidth(mainimageRef);
auto height = CGImageGetHeight(mainimageRef);
auto prov = CGImageGetDataProvider(mainimageRef);
if (!pr

本文详细介绍了在Mac系统中如何通过获取窗口信息并利用CGWindowListCreateImage函数来截图,以及如何从CGImageRef获取RGB数据。提供了一个完整的代码示例,展示了从指定窗口捕获图像的步骤。
最低0.47元/天 解锁文章
637

被折叠的 条评论
为什么被折叠?



