Swift 彩色照片轉(zhuǎn)換成黑白照片

使用濾鏡調(diào)節(jié)照片的飽和度、亮度和對比度值,再調(diào)整曝光度實(shí)現(xiàn)效果:

原圖

處理后的

CIFilter的CIColorControls調(diào)整飽和度,亮度和對比度值。
kCIInputSaturationKey 飽和度
kCIInputBrightnessKey 亮度
kCIInputContrastKey 對比度

CIFilter的CIExposureAdjust曝光調(diào)整
kCIInputEVKey 曝光度

extension UIImage {
    func lj_blackAndWhite() -> UIImage? {
        guard let beginImage = CIImage(image: self) else {
            return nil
        }
        let parameters = [kCIInputImageKey      : beginImage,
                          kCIInputBrightnessKey : 0.0,
                          kCIInputContrastKey   : 1.1,
                          kCIInputSaturationKey : 0.0] as [String : Any]
        
        let blackAndWhite = CIFilter(name: "CIColorControls",
                                     withInputParameters: parameters)?.outputImage
        let outputParam = [kCIInputImageKey : blackAndWhite as Any,
                           kCIInputEVKey: 0.7] as [String : Any]
        let output = CIFilter(name: "CIExposureAdjust", withInputParameters: outputParam)?.outputImage
        guard let outputCI = output else {
            return nil
        }
        let context = CIContext(options: nil)
        guard let cgimage = context.createCGImage(outputCI, from: outputCI.extent) else {
            return nil
        }
        return UIImage(cgImage: cgimage, scale: 0, orientation: self.imageOrientation)
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容