前面介绍了mac系统如何截取窗口和屏幕,有时我们可能想截取的是一个进程的图像。
我这里采用的方法是:截取进程主窗口的图片,然后将该进程的其他独立窗口截出来,然后绘制在主窗口图片之上。这里跟windows一样,使用GDI截图只能截取直接子窗口的图片,如果子窗口是独立窗口是截不进去的需要绘制。
1.获取主窗口图片
//mainwindow
if( 0 == _main_record_window.Handle)
{
std::string mainrecordname;
for(int i=0; i< windows.size(); ++i)
{
if(windows.at(i).main_record_window)
{
_main_record_window = getWindow(std::string(windows.at(i).name));
break;
}
}
}
if(0 == _main_record_window.Handle)
return false;
CGImageRef mainimageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, _main_record_window.Handle, kCGWindowImageNominalResolution | kCGWindowImageShouldBeOpaque);
2.获取独立子窗口图片
//child poppup window
for(int i =0 ; i<windows.size(); ++i)
{
if(windows.at(i).main_reco

最低0.47元/天 解锁文章

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



