加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 04:59:58 所属栏目:百科 来源:网络整理
导读:我有一个NSView,其中包含一个NSScrollView,其中包含一个支持CALayer的NSView.我已经尝试了将NSView捕获到NS Image中的所有常用方法(使用-dataWithPDFInsideRect,NSBitmapImageRep的-initWithFocusedViewRect等).但是,所有这些方法都将CALayer支持的NSView视
我有一个NSView,其中包含一个NSScrollView,其中包含一个支持CALayer的NSView.我已经尝试了将NSView捕获到NS Image中的所有常用方法(使用-dataWithPDFInsideRect,NSBitmapImageRep的-initWithFocusedViewRect等).但是,所有这些方法都将CALayer支持的NSView视为不存在.我已经看过 this StackOverflow帖子,但这是一个关于只将CALayer树渲染到图像的问题,而不是包含常规NSView和图层支持视图的NSView.

任何帮助表示赞赏,谢谢:)

解决方法

我发现这样做的唯一方法是使用CGWindow API,如:
CGImageRef cgimg = CGWindowListCreateImage(CGRectZero,kCGWindowListOptionIncludingWindow,[theWindow windowNumber],kCGWindowImageDefault);

然后剪掉与您的视图对应的CGImage部分

-imageByCroppingToRect.

然后从裁剪的CGImage中制作一个NSImage.请注意,如果该窗口的某些部分位于屏幕外,则无法正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读