- CIFilterを使う
CIColorControlsinputBrightnessに値を設定- 値は
−1.0〜1.0
1import CoreImage
2
3extention UIImage {
4 func adjustBrightness(brightness: Double) -> UIImage? {
5 let ciImage = CIImage(cgImage: self.cgImage!)
6
7 let filter = CIFilter(name: "CIColorControls")
8 filter?.setValue(ciImage, forKey: kCIInputImageKey)
9 filter?.setValue(brightness, forKey: "inputBrightness")
10
11 guard let newCIImage = filter?.outputImage else {
12 return nil
13 }
14
15 let context = CIContext(options: nil)
16 guard let cgImage = context.createCGImage(newCIImage, from: newCIImage.extent) else {
17 return nil
18 }
19 return UIImage(cgImage: cgImage, scale: 1.0, orientation: .up)
20 }
21}
こんな感じで使える。
1let image = UIImage(...)
2let newImage = image.adjustBrightness(brightness: 0.5)