Je suis en train de développer un simple projet de filtre coreImage dans Swift.J'essaie d'obtenir une fonction comme la réinitialisation de l'image filtrée à l'original. J'utilise le code suivant pour le filtre SepiaTone et j'essaie de réinitialiser le filtre en utilisant le filtre CIColorControls. Mais je reçois un crash fatal. Je me demande s'il existe un autre moyen de réinitialiser l'image.Réinitialiser le filtre CoreImage dans Swift
@IBOutlet weak var originalImage: UIImageView!
@IBAction func SepiaToneFilter(sender: AnyObject) {
let mySepiaFilter = CIFilter(name: "CISepiaTone")
mySepiaFilter!.setValue(CIImage(image: originalImage.image!), forKey: kCIInputImageKey)
let myOutputImage : CIImage = mySepiaFilter!.outputImage!
originalImage.image = UIImage(CIImage: myOutputImage)
}
@IBAction func ResetFilter(sender: AnyObject) {
let currentFilter = CIFilter(name: "CIColorControls")
let beginImage = CIImage(image: originalImage.image!)
currentFilter!.setValue(beginImage, forKey: kCIInputImageKey
let output = currentFilter!.outputImage
let cgimg = context.createCGImage(output!, fromRect: output!.extent) **//CreateWrappedSurface() failed for a dataprovider-backed CGImageRef.fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)**
let processedImage = UIImage(CGImage: cgimg)
originalImage.image = processedImage
}
// Choisissez Image Process
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
originalImage.image = image
self.dismissViewControllerAnimated(true, completion: nil);
}
Je ne sais pas comment exécuter la fonction ci-dessus dans mon ResetFilter (UIButton).
Merci à l'avance
Merci pour le code. Je crois, le code que vous avez publié est déjà en cours d'exécution dans mon sous-projet à des fins de test. J'essaie d'implémenter le projet CIfilter dans mon projet principal, et j'obtiens l'image originale de UIImagePickerViewController qui saisit l'image de la photothèque. Je ne suis pas sûr de savoir comment assigner PickerVoir l'image comme une image originale et j'ai également mis à jour mon code. S'il vous plaît jeter un coup d'oeil et laissez-moi savoir ce que vous en pensez.Désolé, Mon mauvais j'ai oublié de mentionner sur le PickerView. – Joe
J'ai trouvé une question similaire dans le lien suivant [lien] (http://stackoverflow.com/questions/23789547/reset-button-to-original-image-from-filtered-image). Mais, j'ai des problèmes pour convertir le code d'Obj-c à Swift ... – Joe
J'ai mis à jour ma réponse. Peut-être l'avez-vous déjà compris, mais vous pouvez simplement définir une propriété comme "userImage" et la définir lorsque vous obtenez l'image de 'UIImagePickerController'. – beyowulf