У меня есть функция фильтра в ViewControlller.swift
, которая фильтрует изображение photoImageView
, которое также сохраняется в ViewControlller.swift
. Проблема заключается в том, что цветной фильтр применяется к результату предыдущего отфильтрованного изображения вместо исходного изображения. Как я могу сохранить photoImageView
в originalImage
var для применения фильтра вместо этого?
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
//MARK: Properties
@IBOutlet weak var photoImageView: UIImageView!
@IBAction func slideFilter(_ sender: UISlider) {
var hueFilter = Double(sender.value)
hueFilter = hueFilter.rounded(toPlaces: 2)
//create image to filter
let inputImage = CIImage(image: photoImageView.image!)
//Create a random color to apply
let randomColor = [kCIInputAngleKey: hueFilter]
//Apply filter to image
let filteredImage = inputImage!.applyingFilter("CIHueAdjust", parameters: randomColor)
let renderImage = context.createCGImage(filteredImage, from: filteredImage.extent)
// Reflect the change back in the interface
photoImageView.image = UIImage(cgImage: renderImage!)
}
}
Когда я пытаюсь сохранить экземпляр переменной photoImageView
во ViewController, я получаю эту ошибку Cannot use instance member 'photoImageView' within property initializer; property initializers run before 'self' is available