Skip to content

Instantly share code, notes, and snippets.

@suatkarakusoglu
Last active August 23, 2016 11:33
Show Gist options
  • Save suatkarakusoglu/9ff873cfe5568e9af056b03df0455406 to your computer and use it in GitHub Desktop.
Save suatkarakusoglu/9ff873cfe5568e9af056b03df0455406 to your computer and use it in GitHub Desktop.
iOS Gray Scale Image - Swift
class Utils
{
static func toGreyish(image:UIImage) -> UIImage?
{
guard let colorControlsFilter = CIFilter(name: "CIColorControls") else { return nil }
guard let colorExposureFilter = CIFilter(name:"CIExposureAdjust") else { return nil }
let ciImage = CIImage(image:image)
colorControlsFilter.setValue(ciImage, forKey: kCIInputImageKey)
colorControlsFilter.setValue(0.0, forKey: kCIInputBrightnessKey)
colorControlsFilter.setValue(0.0, forKey: kCIInputSaturationKey)
colorControlsFilter.setValue(1.0, forKey: kCIInputContrastKey)
let intermediateImage = colorControlsFilter.outputImage
colorExposureFilter.setValue(intermediateImage, forKey: kCIInputImageKey)
colorExposureFilter.setValue(0.8, forKey: kCIInputEVKey)
if let output = colorExposureFilter.outputImage
{
let context = CIContext(options: nil)
let cgImage = context.createCGImage(output, fromRect: output.extent)
return UIImage(CGImage: cgImage, scale: image.scale, orientation: image.imageOrientation)
}
return nil
}
}
import UIKit
extension UIImage
{
var greyish : UIImage? {
return Utils.toGreyish(self)
}
}
import UIKit
extension UIImageView
{
func toGreyish()
{
guard let currentImage = self.image else {
print("ImageView doesn't have an image to make greyish")
return
}
let greyishImage = currentImage.greyish
self.image = greyishImage
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment