在我的应用程序中,我创建了一个CALayer
(带有几个子层——CALayer由作为子层添加的形状组成).
我试图创建一个UIImage
,我将能够上传到服务器(我有这个代码).
这可能吗?
在我的应用程序中,我创建了一个CALayer
(带有几个子层——CALayer由作为子层添加的形状组成).
我试图创建一个UIImage
,我将能够上传到服务器(我有这个代码).
这可能吗?
听起来像是要将图层渲染成UIImage.在这种情况下,下面的方法应该可以做到这一点.只需将其添加到视图或控制器类,或在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!
}