首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在mac中以编程方式为应用程序窗口截图

仅在mac中以编程方式为应用程序窗口截图
EN

Stack Overflow用户
提问于 2013-03-16 14:30:35
回答 2查看 4K关注 0票数 9

我必须添加截图到我的OSX应用程序的能力,但苹果演示只给我整个屏幕图像,我只想我的应用程序窗口图像。

我的代码是:

代码语言:javascript
复制
NSInteger displaysIndex = 0;
if(displays != nil)
{
    free(displays);
}


CGError             err = CGDisplayNoErr;
CGDisplayCount      dspCount = 0;

/* How many active displays do we have? */
err = CGGetActiveDisplayList(0, NULL, &dspCount);

/* If we are getting an error here then their won't be much to display. */
if(err != CGDisplayNoErr)
{
    return;
}
/* Allocate enough memory to hold all the display IDs we have. */
displays = calloc((size_t)dspCount, sizeof(CGDirectDisplayID));

// Get the list of active displays
err = CGGetActiveDisplayList(dspCount,
                             displays,
                             &dspCount);

/* Make a snapshot image of the current display. */
CGImageRef image = CGDisplayCreateImage(displays[displaysIndex]);

我应该在代码中做什么修改,才能只看到我的应用程序的窗口?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-16 15:08:48

很简单。

代码语言:javascript
复制
NSImage *captureImage  = [[NSImage alloc] initWithData:[self.view dataWithPDFInsideRect:[self.view bounds]]];

请查收并通知我。这是捕获的当前活动窗口。

票数 8
EN

Stack Overflow用户

发布于 2013-03-17 11:30:23

要实际拍摄窗口的屏幕截图,包括它的边框和阴影,请获取窗口的windowNumber并将其传递给the CGWindowListCreateImage function

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15446319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档