IOS上的图像处理过滤器,如白平衡,曝光,分离音等

时间:2011-10-27 17:38:23

标签: iphone objective-c ios image-processing image-manipulation

我一直在尝试为我的IOS应用程序实现一些图像操作过滤器,如WHITE BALANCE,EXPOSURE和SPLIT TONING(如在Photoshop中),但我没有得到任何标准实现来实现它们。 / p>

我发现shell脚本是通过ImageMagick

实现的

但不知道如何将这些脚本更改为C语言或目标C中的等效脚本。 我只是使用一些转换命令来做神奇的事情。

提前致谢。请帮助。

通过改变图像的温度和色调也可以实现白平衡。所以,如果那里有人知道如何操纵这些色调和温度的图像,请帮我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:14)

从iOS 5开始,Core Image filters可用。

一个非常简单的示例,假设您已在Interface Builder中添加了名为imageView的UIImageView IBOutlet,并使用图像文件进行设置。

  1. 添加CoreImage框架。
  2. #import <CoreImage/CoreImage.h>
  3. viewDidLoad中,添加以下内容:

    CIImage *inputImage = [[CIImage alloc] initWithImage:self.imageView.image];
    CIFilter *exposureAdjustmentFilter = [CIFilter filterWithName:@"CIExposureAdjust"];
    [exposureAdjustmentFilter setDefaults];
    [exposureAdjustmentFilter setValue:inputImage forKey:@"inputImage"];
    [exposureAdjustmentFilter setValue:[NSNumber numberWithFloat:5.0f] forKey:@"inputEV"];
    CIImage *outputImage = [exposureAdjustmentFilter valueForKey:@"outputImage"];
    CIContext *context = [CIContext contextWithOptions:nil];
    self.imageView.image = [UIImage imageWithCGImage:[context createCGImage:outputImage fromRect:outputImage.extent]];
    
  4. 另一种选择可能是使用GitHub ios-image-filters项目中的过滤器。

答案 1 :(得分:9)

作为ios-image-filters的作者,我可以告诉您,我们的项目有一个可用于修改白平衡的水平方法。它作为UIImage上的类别实现并模仿Photoshop滤镜,因此调用它就像:

[self.imageView.image levels:0 mid:128 white:255];

此外,它兼容iOS 3&amp; 4,不仅仅是iOS 5.它是开源的,没有依赖关系,所以如果找不到你需要的过滤器,应该很容易修改。