gpt4 book ai didi

cocoa - 如何抓取屏幕外 NSWindow 的图像?

转载 作者:行者123 更新时间:2023-12-03 16:20:51 26 4
gpt4 key购买 nike

我正在尝试获取屏幕外窗口的图像以在基于 CALayer 的动画中使用,但无论我尝试哪种方法,我都无法从另一侧获取图像。以下是我在项目中的自定义 NSWindow 子类上使用的代码:

CGImageRef windowImage = CGWindowListCreateImage(CGRectNull, 
kCGWindowListOptionAll,
(CGWindowID)[self windowNumber],
kCGWindowImageDefault);

图像应该是这样的:

alt text

这是我得到的结果(忽略稍大的尺寸 - 这是我在渲染图像时的错误):

alt text

有人能看出我哪里出错了吗?奇怪的是,Quartz Debug 可以毫无问题地看到窗口图像,但是Son of Grab sample code from Apple不能。

最佳答案

来自 CGWindow.h 中 CGWindowListCreateImage 的文档注释:

kCGWindowListOptionAll, kCGWindowListOptionOnScreenOnly: Use all on-screen windows in this user session to construct the image. The parameter windowID should be kCGNullWindowID.

这就是为什么您会获得您感兴趣的矩形内的所有窗口的屏幕截图。

要截取特定窗口的屏幕截图,请使用kCGWindowListOptionInclusionWindow

关于cocoa - 如何抓取屏幕外 NSWindow 的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com