Skip to content

Instantly share code, notes, and snippets.

@Jesse-calkin
Created June 5, 2016 19:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save Jesse-calkin/2e04ce2305a085899f65de4e86a64d74 to your computer and use it in GitHub Desktop.
Save Jesse-calkin/2e04ce2305a085899f65de4e86a64d74 to your computer and use it in GitHub Desktop.
UIImage extension for creating a new image with adjusted exposure
extension UIImage {
/**
Returns a new `UIImage` with an adjusted exposure value.
- Parameter ev: The amount to adjust the exposure value. Negative for darker, positive for lighter.
- Returns: a new `UIImage` with an adjusted exposure value.
*/
func imageWithAdjustedExposure(ev: Double) -> UIImage? {
guard let cgImage = self.CGImage else { return nil }
let filterName = "CIExposureAdjust"
guard let filter = CIFilter(name: filterName) else {
print("No filter with name: \(filterName).")
return nil
}
let inputImage = CoreImage.CIImage(CGImage: cgImage)
filter.setValue(inputImage, forKey: kCIInputImageKey)
filter.setValue(ev, forKey: kCIInputEVKey)
guard let filteredImage = filter.outputImage else {
print("No output image.")
return nil
}
let context = CIContext(options: nil)
return UIImage(CGImage: context.createCGImage(filteredImage, fromRect: filteredImage.extent))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment