0

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

谢谢。

4

2 回答 2

2

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

#import <ApplicationServices/ApplicationServices.h>

CGImageRef createScreenCapture(CGRect rect) {
  CGImageRef image = CGWindowCreateImage(
                       rect,
                       kCGWindowListOptionOnScreenOnly,
                       0,
                       kCGWindowImageDefault);
  return image;
}
于 2009-04-21T08:55:21.980 回答
1

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

Apple 有一些较旧的示例代码,应该可以让您开始。

于 2009-04-21T19:58:57.067 回答