Increase/decrease brightness of image using UISlider?

10,917

Solution 1

I found answer to my question here is how i have done coding.

import CoreImage
class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
   var aCIImage = CIImage();
   var contrastFilter: CIFilter!;
   var brightnessFilter: CIFilter!;
   var context = CIContext();
   var outputImage = CIImage();
   var newUIImage = UIImage();

   override func viewDidLoad() {
    super.viewDidLoad() 
    var aUIImage = imageView.image;
    var aCGImage = aUIImage?.CGImage;
    aCIImage = CIImage(CGImage: aCGImage)
    context = CIContext(options: nil);
    contrastFilter = CIFilter(name: "CIColorControls");
    contrastFilter.setValue(aCIImage, forKey: "inputImage")
    brightnessFilter = CIFilter(name: "CIColorControls");
    brightnessFilter.setValue(aCIImage, forKey: "inputImage")
  }
  func sliderContrastValueChanged(sender: UISlider) {
    contrastFilter.setValue(NSNumber(float: sender.value), forKey: "inputContrast")
    outputImage = contrastFilter.outputImage;
    var cgimg = context.createCGImage(outputImage, fromRect: outputImage.extent())
    newUIImage = UIImage(CGImage: cgimg)!
    imageView.image = newUIImage;
  }
  func sliderValueChanged(sender: UISlider) {
    brightnessFilter.setValue(NSNumber(float: sender.value), forKey: "inputBrightness");
    outputImage = brightnessFilter.outputImage;
    let imageRef = context.createCGImage(outputImage, fromRect: outputImage.extent())
    newUIImage = UIImage(CGImage: imageRef)!
    imageView.image = newUIImage;
  }
}

Solution 2

You can use AlamofireImage, here's an example of how you can do it:

@IBAction func brightnessChanged(sender: UISlider) {
        let filterParameters = ["inputBrightness": sender.value]
        imageView.image = originalImage.af_imageWithAppliedCoreImageFilter("CIColorControls", filterParameters: filterParameters)
    }
Share:
10,917
sohan vanani
Author by

sohan vanani

welcomeString = "Hello Welcome!!! :)"; print("I'M AN iOS DEVELOPER THAT MAKES ME COOLER THAN YOU."); //life moto if(sad() == true) { // while(alive) { sad().stop(); // eat(); beAwesome(); // sleep(); } // code(); // repeat(); //Method to get Success // } while(noSuccess) { tryAgain(); if(Dead) { break; } }

Updated on June 15, 2022

Comments

  • sohan vanani
    sohan vanani almost 2 years

    I am building an iOS app which is based on image operations.

    I want to increase and decrease brightness of image by slider value.

    I have used this code to do this:

    @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)
    
        }
    

    Now my question is that when I increase slider value it also increase brightness of image but only when I change slider position for first time.

    When I am again changing the position of slider I am getting this errror:

    fatal error: unexpectedly found nil while unwrapping an Optional value.

    This error is coming at line:

    imageView.image = UIImage(CIImage: outpuImage as CIImage)
    

    This time rawimgData data comes nil.