IOS: When saving masked image, original image is saved?

Viewed 53

I am masking an image using an image_mask, the following code shows that:

func maskOriginalImage() -> UIImage? {
        if(self.maskImage != nil && self.originalImage != nil){
            let maskReference = self.maskImage?.cgImage!
            let maskedReference = self.originalImage?.cgImage!.masking(maskReference!)
            self.maskImage = nil
            return UIImage(cgImage: maskedReference!)
        }
        return nil

Now I want to save the masked image to photo library.

 func saveImageToLibrary(){
        UIImageWriteToSavedPhotosAlbum(self.segmentedimage, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)

    }

But while saving the maskedImage, original image is saved. The workaround I found is to create a new UIimagecontext and draw the maskedimage in the context and use that image to save.

 func getImageFromContext() -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(self.size, false, scale)
        draw(in: CGRect(origin: .zero, size: size))
        let result = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return result
    }

Why I just can't save the masked image directly? I am relatively new to IOS development so any inputs will be helpful.

0 Answers
Related