objective-c - 什么会导致 CGDisplayCreateImageForRect 捕获或忽略光标?

标签 objective-c cocoa screenshot nscursor

我在 osx 上捕获屏幕

capturedImage = CGDisplayCreateImageForRect(displayID, CGRectMake(point.x - 4, point.y - 4, 8, 8));

这将返回光标下的屏幕部分。稍后我将设置一个自定义图像光标:

[[[NSCursor alloc] initWithImage:img hotSpot:NSMakePoint(4, 4)] set];

问题发生在我设置光标并尝试再次捕获屏幕后。光标包含在帧缓冲区中。这使得捕获的图像与我作为光标放置的图像相同。我试过隐藏光标,然后捕获屏幕,然后再显示它,但它不起作用,而且还会使光标闪烁。

更奇怪的是,在特定笔记本电脑上未捕获光标图像,但在运行相同操作系统(Mountain Lion、Snow Leopard)的其他笔记本电脑上捕获了光标图像。

什么会导致光标包含在帧缓冲区中?有没有办法保证在没有自定义光标的情况下进行屏幕捕获?

谢谢

最佳答案

这取决于谁渲染光标以及它是纯硬件加速还是软件渲染。这因硬件而异,也因操作系统而异……按照 markk 的建议进行操作:将其设置为默认值

关于objective-c - 什么会导致 CGDisplayCreateImageForRect 捕获或忽略光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251871/

相关文章:

php - Google pagespeed-insights API 截图解析

ios - iTunes Connect 截图不接受 iPad PRO 截图

iphone - UITableViewCell 的动态高度取决于文本

ios - 停止和启动 MonitoringForRegion 时监控区域失败 - iOS 7.1

ios - 在 iPhone 上安装 Facebook 应用程序时,Facebook 登录失败

ios - NSManagedObject值正确,然后合并从父级到子级NSManagedObjectContext的更改时不正确

objective-c - NSTreeController + 核心数据 : STOP KVO?

ios - 使用 NONE 的 NSPredicate 聚合操作

swift - NSMetadataQuery 不返回任何数据

ios - 如何截取单个 View 对象而不是整个屏幕的屏幕截图?