IOS: При сохранении замаскированного изображения сохраняется исходное изображение? - PullRequest
1 голос
/ 09 июля 2020

Я маскирую изображение с помощью image_mask, следующий код показывает, что:

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

Теперь я хочу сохранить замаскированное изображение в библиотеке фотографий.

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

    }

Но пока при сохранении maskedImage сохраняется исходное изображение. Обходной путь, который я нашел, - создать новый UIimagecontext и нарисовать маскированное изображение в контексте и использовать это изображение для сохранения.

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

Почему я просто не могу сохранить замаскированное изображение напрямую? Я относительно новичок в разработке IOS, поэтому любые комментарии будут полезны.

...