在我的应用程序中,我创建了一个 CALayer
(带有一些子层 - CALayer 由作为子层添加的形状组成)。
我正在尝试创建一个 UIImage
我将能够上传到服务器(我有这个代码)。
但是,我不知道如何将 CALayer
添加到 UIImage
。
这可能吗?
最佳答案
听起来您想将图层渲染为 UIImage。在这种情况下,下面的方法应该可以解决问题。只需将其添加到您的 View 或 Controller 类,或在 CALayer 上创建一个类别。
Obj-C
- (UIImage *)imageFromLayer:(CALayer *)layer
{
UIGraphicsBeginImageContextWithOptions(layer.frame.size, NO, 0);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outputImage;
}
swift
func imageFromLayer(layer:CALayer) -> UIImage {
UIGraphicsBeginImageContextWithOptions(layer.frame.size, layer.isOpaque, 0)
layer.render(in: UIGraphicsGetCurrentContext()!)
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return outputImage!
}
关于ios - iOS中CALayer的UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454356/