Sto costruendo un'app per iOS basata sulle operazioni dell'immagine.Aumenta/riduci la luminosità dell'immagine utilizzando UISlider?
Desidero aumentare e ridurre la luminosità dell'immagine tramite il valore del cursore.
Ho usato questo codice per fare questo:
@IBOutlet var imageView: UIImageView!
@IBOutlet var uiSlider : UISlider!
override func viewDidLoad()
{
super.viewDidLoad()
var image = UIImage(named: "54715869.jpg")
imageView.image = image
uiSlider.minimumValue = -0.2
uiSlider.maximumValue = 0.2
uiSlider.value = 0.0
uiSlider.maximumTrackTintColor = UIColor(red: 0.1, green: 0.7, blue: 0, alpha: 1)
uiSlider.minimumTrackTintColor = UIColor.blackColor()
uiSlider.addTarget(self, action: "brightnesssliderMove:", forControlEvents: UIControlEvents.TouchUpInside)
uiSlider.addTarget(self, action: "brightnesssliderMove:", forControlEvents: UIControlEvents.TouchUpOutside)
}
func brightnesssliderMove(sender: UISlider)
{
var filter = CIFilter(name: "CIColorControls");
filter.setValue(NSNumber(float: sender.value), forKey: "inputBrightness")
var image = self.imageView.image
var rawimgData = CIImage(image: image)
filter.setValue(rawimgData, forKey: "inputImage")
var outpuImage = filter.valueForKey("outputImage")
imageView.image = UIImage(CIImage: outpuImage as CIImage)
}
Ora la mia domanda è che quando ho aumentare il valore del cursore anche aumentare la luminosità dell'immagine, ma solo quando cambio posizione del cursore per la prima volta.
Quando sarò di nuovo cambiare la posizione del cursore sto ottenendo questo errror:
fatal error: unexpectedly found nil while unwrapping an Optional value.
Questo errore sta arrivando alla riga:
imageView.image = UIImage(CIImage: outpuImage as CIImage)
Questa volta rawimgData
dati provengono nullo.
perché stai impostando il "inputImage" '' due volte? E oltre a questo: sei sicuro che quello che stai cercando di fare sta funzionando? Secondo la documentazione 'kCIInputBrightnessKey' non è disponibile in iOS ... non sono sicuro che le informazioni siano vere comunque. – luk2302
ho modificato la mia domanda. kCIInputBrightnessKey sta funzionando con esso –
Dai un'occhiata a questa risposta http://stackoverflow.com/a/15758267/2442804 per avere un'idea migliore su come questo potrebbe funzionare e dove sono i tuoi errori. – luk2302