iOS图像文本和颜色增强滤镜

4
我正在尝试使用CIFilter和GPUImage滤镜对图像应用各种效果(亮度、对比度、饱和度等),但我遇到了困难,需要像下面展示的那样进行增强: 增强前滤镜 Before Enhancement filter: 增强后滤镜 After Enhancement filter 我尝试的CIFilter代码:
NSDictionary *options = @{ CIDetectorImageOrientation :
                               [[resultImage properties] valueForKey:kCGImagePropertyOrientation] };
NSArray *adjustments = [resultImage autoAdjustmentFiltersWithOptions:options];
for (CIFilter *filter in adjustments) {
    [filter setValue:resultImage forKey:kCIInputImageKey];
    resultImage = filter.outputImage;
}

GPUImage滤镜:

UIImage *inputImage = [UIImage imageNamed:@"Msource.png"];
GPUImageAdaptiveThresholdFilter *stillImageFilter = [[GPUImageAdaptiveThresholdFilter alloc] init];
stillImageFilter.blurRadiusInPixels = 10.0;// adjust this to tweak the blur radius of the filter, defaults to 4.0

UIImage *filteredImage = [stillImageFilter imageByFilteringImage:inputImage];

谢谢您的回复,我会更新我的问题。 - Manikandan D
你想使用哪种滤镜?你知道你的示例图像正在使用什么滤镜吗 - 看起来像是淡入淡出? - Johnny Rockex
1个回答

3
//希望这对你有所帮助,它是用Swift 3编写的:
        var aCIImage = CIImage();
        var contrastFilter: CIFilter!;
        var brightnessFilter: CIFilter!;
        var gaussianBlurFilter: CIFilter!;
        var pointFilter: CIFilter!;
        var vignettFilter : CIFilter!;
        var context = CIContext();
        var outputImage = CIImage();
        var newUIImage = UIImage();
        var finalImage = UIImage()
    
       DispatchQueue.main.async
                        {
                            self.gaussianBlurFilter = CIFilter(name: "CIExposureAdjust");
                            self.gaussianBlurFilter.setValue(self.aCIImage, forKey: "inputImage")
                            
                            self.gaussianBlurFilter.setValue(NSNumber(value: sender.value), forKey: "inputEV");
                            
                            self.outputImage = self.gaussianBlurFilter.outputImage!;
                            
                            let imageRef = self.context.createCGImage(self.outputImage, from: self.outputImage.extent)
                            
                            self.newUIImage = UIImage(cgImage: imageRef!)
                            self.testView?.image = self.newUIImage;
                    }


 // 

Dark Image with text and having no filters applied to it

https://istack.dev59.com/s1STp.webp

Same Image with text and having CIExposureAdjust Filter applied to it

https://istack.dev59.com/uU0Oz.webp

链接:演示项目。

https://drive.google.com/open?id=0B-EIC_4IXtA9UjFwT3o0dXI1OTA


我猜这也可以通过“CIExposureAdjust”滤镜来实现。希望我能帮到你。 - Swifty Codes
不知道为什么你的代码不起作用,但这是经过测试的代码。我已经执行了与你相同的操作。我也附上了一张图片,请看一下。最初它是一张暗淡的图片,这张图片是在应用滤镜后的效果。 - Swifty Codes
@SwiftyCodes,你可以使用Asker自己的图片进行测试更新:https://i.stack.imgur.com/sYpC5.jpg - VC.One
@VC.One,现在可以看到上传的图片了!虽然贴纸视图中的图像不是完整的,但仍然可以看到已应用的效果,我想它正在工作!顺便说一下,我使用滑块来减少和增加曝光调整强度,这也是使用GPUImage Filter完成的,但仅限于Swift。希望我能帮到你 :) - Swifty Codes
感谢您的更新。现在提问者可以看到这个答案如何适用于他们的问题/图像。 - VC.One
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接