ios - 在 3D 中将 CATransformLayer 渲染为 PNG

标签 ios 3d core-animation render catransformlayer

我正在尝试将包含多个 CAShapeLayer 的 CATransformLayer 渲染到 png 文件。我知道如何设置基本渲染并且确实有效。

尽管当我在 CATransformLayer 上调用 renderInContext 时,它会将所有内容展平为 2D 并完全忽略我的转换矩阵(旋转和/或透视)。

如何将我的 3d CATransformLayer 及其所有 CAShapeLayers 渲染为 PNG/UIImage?

最佳答案

由于您只针对 iOS7 及更高版本,我建议您放弃 renderInContext: 并将其替换为 -[UIView drawViewHierarchyInRect:afterScreenUpdates:]。你的代码可能看起来像这样:

UIGraphicsBeginImageContext(sizeOfYourImage);

[yourViewToRender drawViewHierarchyInRect:(CGRect){0, 0, sizeOfYourImage} afterScreenUpdates:YES];

UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

关于ios - 在 3D 中将 CATransformLayer 渲染为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531190/

相关文章:

c# - 计算以接缝结束的 2 个网格之间的法线

iphone - 更改 UINavigationController 推送动画的持续时间

ios - 设置框架后 UIViewAnimation 反弹

ios - 从 Watch 应用程序调用父应用程序时如何使用文件加密?

javascript - 在 AFrame.io 中创建大量立方体的简洁方法

ios - 计算适合固定空间的 UITableViewCells 的数量

c++ - 计算四边形网格的法线

swift - CAShapeLayer.isHidden 自动快速应用动画

ios - H.264:VTDecompressionSessionDecodeFrame失败,代码为12909

ios - 如何正确获取CoreData表达式查询结果