Ich baue eine iOS App, die auf Bildoperationen basiert.Helligkeit des Bildes mit UISlider erhöhen/verringern?
Ich möchte die Helligkeit des Bildes durch Slider-Wert erhöhen und verringern.
ich diesen Code verwendet haben, dies zu tun:
@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)
}
Nun meine Frage ist, dass, wenn ich Reglerwert erhöhen sie auch die Helligkeit des Bildes erhöhen, aber nur, wenn ich Schieberposition für die erste Zeit ändern.
Wenn bin ich wieder die Position des Schiebers ändert ich dieses errror bin immer: in Zeile
fatal error: unexpectedly found nil while unwrapping an Optional value.
Dieser Fehler kommt:
imageView.image = UIImage(CIImage: outpuImage as CIImage)
Diesmal rawimgData
Daten Null kommt.
warum setzen Sie die ' "inputImage"' zweimal? Und darüber hinaus: Bist du dir sicher, was du zu tun versuchst? Laut der Dokumentation 'kCIInputBrightnessKey' ist nicht in iOS verfügbar ... nicht sicher, dass die Informationen jedoch wahr sind. – luk2302
Ich habe meine Frage bearbeitet. kCIInputBrightnessKey arbeitet damit –
Werfen Sie einen Blick auf diese Antwort http://Stackoverflow.com/a/15758267/2442804, um eine bessere Idee zu bekommen, wie dies funktionieren könnte und wo Ihre Fehler sind. – luk2302