gpt4 book ai didi

ios - 将具有透视变换的 UIView 转换为 UIImage

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:21 24 4
gpt4 key购买 nike

我想将具有透视变换的 UIView 转换为 UIImage,但我得到的图像没有经过变换。我怎样才能保持转型?

我正在使用以下代码对 UIView 进行透视变换:

    var rotationAndPerspectiveTransform = CATransform3DIdentity
rotationAndPerspectiveTransform.m34 = 1.0 / -500
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0 * CGFloat(M_PI) / 180.0, 1.0, 0.0, 0.0)
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0 * CGFloat(M_PI) / 180.0, 0.0, 1.0, 0.0)
self.photoImageView.layer.transform = rotationAndPerspectiveTransform

然后将带有透视变换的 UIView 转换为 UIImage:

    UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0.0)
view.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

结果我得到了正确的图像,但没有透视

最佳答案

您可以使用 UIView 方法 drawViewHierarchyInRect。它会将完整 View 层次结构的快照呈现为在当前上下文中在屏幕上可见。

像这样尝试:

UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0.0)
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

关于ios - 将具有透视变换的 UIView 转换为 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755980/

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