gpt4 book ai didi

objective-c - 将包含一些 CALayers 的 NSView 渲染到 NSImage

转载 作者:太空狗 更新时间:2023-10-30 03:42:31 25 4
gpt4 key购买 nike

我有一个 NSView,其中包含一个包含 CALayer 支持的 NSView 的 NSScrollView。我已经尝试了所有将 NSView 捕获到 NSImage 中的常用方法(使用 -dataWithPDFInsideRect、NSBitmapImageRep 的 -initWithFocusedViewRect 等)但是,所有这些方法都将 CALayer-支持 NSView 就好像它不存在一样。我已经看过 this StackOverflow 帖子,但这是一个关于将 CALayer 树渲染到图像的问题,而不是包含常规 NSView 和图层支持 View 的 NSView。

感谢任何帮助,谢谢:)

最佳答案

我发现这样做的唯一方法是使用 CGWindow API,例如:

CGImageRef cgimg = CGWindowListCreateImage(CGRectZero, kCGWindowListOptionIncludingWindow, [theWindow windowNumber], kCGWindowImageDefault);

然后用

剪掉与您的 View 相对应的 CGImage 部分

-imageByCroppingToRect

然后从裁剪后的 CGImage 制作一个 NSImage。请注意,如果该窗口的某些部分不在屏幕上,这将无法正常工作。

关于objective-c - 将包含一些 CALayers 的 NSView 渲染到 NSImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4516191/

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