gpt4 book ai didi

ios - 如何使用 CoreImage 滤镜实现灰度滤镜?

转载 作者:行者123 更新时间:2023-11-29 10:24:37 27 4
gpt4 key购买 nike

我已经创建了我认为应该是合适的灰度 CIFilter,使用针对白色调整的 CIColorMonochromeFilter。这对我来说看起来很灰度,但我也不是专家,所以我只是想知道这是否是灰度过滤器的准确实现。

我还没有编写代码来转储和测试像素,但基于已经是 RBG 的图像格式,我很好奇输出图像会是什么格式。例如,我将如何知道每个像素是一个分量还是三个分量?

我知道 CIImage 只是图像的配方,我必须使用 CGImageRef 来最终呈现。我只是不明白我应该期望数据是什么像素格式。

CIFilter * monoChromeFilter = [CIFilter filterWithName:kCIColorMonochromeFilterName];    
[monoChromeFilter setValue:self.inputImage forKey:kCIInputImageKey];

CIColor * white = [CIColor colorWithRed:1.0 green:1.0 blue:1.0];
[monoChromeFilter setValue:white forKey:kCIInputColorKey];

最佳答案

我希望这能对你有所帮助(它很快。)

static func convertToBlackAndWhite(image:UIImage) -> UIImage?
{
//first do color controls
let ciImage = CIImage(image:image)
let filter = CIFilter(name: "CIColorControls")
filter.setValue(ciImage, forKey: kCIInputImageKey)
filter.setValue(0.0, forKey: kCIInputBrightnessKey)
filter.setValue(0.0, forKey: kCIInputSaturationKey)
filter.setValue(1.1, forKey: kCIInputContrastKey)

let intermediateImage = filter.outputImage

let filter1 = CIFilter(name:"CIExposureAdjust")
filter1.setValue(intermediateImage, forKey: kCIInputImageKey)
filter1.setValue(0.7, forKey: kCIInputEVKey)
let output = filter1.outputImage

let context = CIContext(options: nil)
let cgImage = context.createCGImage(output, fromRect: output.extent())

return UIImage(CGImage: cgImage, scale: image.scale, orientation: image.imageOrientation)
}

关于ios - 如何使用 CoreImage 滤镜实现灰度滤镜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com