我一直在尝试为我的IOS应用程序实现一些图像操作过滤器,如WHITE BALANCE,EXPOSURE和SPLIT TONING(如在Photoshop中),但我没有得到任何标准实现来实现它们。 / p>
我发现shell脚本是通过ImageMagick
实现的但不知道如何将这些脚本更改为C语言或目标C中的等效脚本。 我只是使用一些转换命令来做神奇的事情。
提前致谢。请帮助。
通过改变图像的温度和色调也可以实现白平衡。所以,如果那里有人知道如何操纵这些色调和温度的图像,请帮我解决这个问题。感谢。
答案 0 :(得分:14)
从iOS 5开始,Core Image filters可用。
一个非常简单的示例,假设您已在Interface Builder中添加了名为imageView的UIImageView IBOutlet,并使用图像文件进行设置。
#import <CoreImage/CoreImage.h>
在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]];
另一种选择可能是使用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.它是开源的,没有依赖关系,所以如果找不到你需要的过滤器,应该很容易修改。