在Mac OS X桌面上选择区域

时间:2009-04-21 08:06:49

标签: macos screen-grab

如果在Mac OS X中按cmd + shift + 4,则可以在屏幕上选择显示相应坐标的区域。我需要在我的一个应用程序中实现这样的功能,并且不知道如何执行它。有人可以给我一些建议吗?

THX。

2 个答案:

答案 0 :(得分:2)

此代码片段将返回一个CGImageRef,其中包含桌面上显示给定矩形的所有内容。它需要ApplicationServices框架。屏幕坐标被翻转,原点位于屏幕的左上角。在这种情况下,图像引用将由调用者拥有,并且需要在调用者完成时使用CGImageRelease释放。

#import <ApplicationServices/ApplicationServices.h>

CGImageRef createScreenCapture(CGRect rect) {
  CGImageRef image = CGWindowCreateImage(
                       rect,
                       kCGWindowListOptionOnScreenOnly,
                       0,
                       kCGWindowImageDefault);
  return image;
}

答案 1 :(得分:1)

通常,这是通过覆盖整个桌面空间的半透明覆盖窗口来完成的。

Apple有一些older sample code可以给你一个开始。