1
votes

So I got a view with a layer and some sublayer that have compositingFilter set with blend modes to see though the layers. I want to save all sublayer to one image in the photo library. Everything looks good in the views but when I save the CALayer, by converting it to a UIImage with UIGraphicsContext and using UIImageWriteToSavedPhotosAlbum, I only get one layer saved.

Dose anyone know how to convert multiple sublayers in a CALayer to a UIImage?

1

1 Answers

3
votes

Had the same problem with you, I added many sublayers to a CALayer of UIImageView by imageView.layer.addSublayer(newLayer).

Solved it by following other's instructions. Hope my code could give any idea.

@IBAction func saveArtwork(_ sender: Any) {

    UIGraphicsBeginImageContext(self.imageView.bounds.size)

    // The code below may solve your problem
    imageView.layer.render(in: UIGraphicsGetCurrentContext()!)

    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    let activity = UIActivityViewController(activityItems: [image!], applicationActivities: nil)
    present(activity, animated: true, completion: nil)
}