gpt4 book ai didi

iPhone:使用 3D 图层转换时如何以编程方式截取屏幕截图

转载 作者:行者123 更新时间:2023-12-03 21:21:21 25 4
gpt4 key购买 nike

我正在尝试以编程方式将当前 View 的图像保存到 UIImage。当前 View 包含背景和许多已对图层应用 3D 变换的 UIImageView,例如

CATransform3D t = CATransform3DIdentity;
t = CATransform3DRotate(t, rotationX, 1.0, 0, 0);
t = CATransform3DRotate(t, rotationY, 0, 1.0, 0);
object.layer.transform = t;

我目前正在使用以下代码获取当前 View 的屏幕截图:

UIGraphicsBeginImageContext(background.bounds.size);
[background.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

但是,对象的 3D 变换会丢失,例如对象出现在保存的图像中,就好像没有应用 3D 变换一样。有没有办法以编程方式抓取包含 3D 转换的屏幕截图?

UIGetScreenImage() 不是一个选项,因为它是私有(private) API,并且此应用程序将进入应用程序商店。

最佳答案

我认为目前无法完成,因为 renderInContext 不会渲染核心动画转换,并且 UIGetScreenImage() 不是公共(public) API,正如您所指出的那样。 StackOverflow 上已经提出了同样的问题:

1) How do I create/render a UIImage from a 3D transformed UIImageView?

2) CALayer renderInContext

如果该功能对您的应用程序至关重要,我会考虑使用 OpenGL View 并捕获颜色缓冲区(如果您不想显示它,可以将其渲染到屏幕外)。

关于iPhone:使用 3D 图层转换时如何以编程方式截取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272792/

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