【问题标题】:What can cause CGDisplayCreateImageForRect to capture or ignore the cursor?什么会导致 CGDisplayCreateImageForRect 捕获或忽略光标?
【发布时间】:2012-09-03 17:15:48
【问题描述】:

我正在用 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)的其他笔记本电脑上会捕获光标图像。

什么会导致光标包含在帧缓冲区中?有没有办法保证没有自定义光标的屏幕截图?

谢谢

【问题讨论】:

  • 在截屏前尝试将光标切换回默认光标图像。

标签: objective-c cocoa screenshot nscursor


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多