ios - iOS中CALayer的UIImage

标签 ios objective-c uiimageview uiimage calayer

在我的应用程序中,我创建了一个 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/

相关文章:

ios - 如何在本地存储 UIImage 以避免不必要的服务器请求?

ios - 具有自动布局和最大尺寸保持纵横比的 UIImageView

iphone - 使用没有代码的 iOS 模拟器,从 usb 闪存使用

ios - 带有 BT.709 矩阵的 H.264 编码视频是否包含任何 Gamma 调整?

ios - 按下 'Done' 时隐藏 UITextView 的虚拟键盘

ios - UITextView不会从特定区域之外滚动

iphone - 将字符串写入文件到 FTP Objective C?

ios - 如何在另一个 ViewController 中关闭一个 viewcontroller?

ios - 为动态创建的 UIPickerView 添加协议(protocol)

objective-c - 如何高效展示多张图片? (iPhone编程)