用于Core Image的CIGaussianGradientfilter的示例

我正在寻找iOS的这个核心图像filter的代码示例。 那些在inputImage参数中的filter,我可以搞清楚如何实现。 但没有inputImage参数,我不知道它是如何工作的。

以下是苹果公司的文档摘录:

CIGaussianGradient

使用高斯分布生成从一种颜色到另一种颜色的渐变。 参数

inputCenter

A CIVector class whose attribute type is CIAttributeTypePosition and whose display name is Center. Default value: [150 150] Identity: (null) 

inputColor0

 A CIColor class whose display name is Color 1. 

inputColor1

 A CIColor class whose display name is Color 2. 

inputRadius

 An NSNumber class whose attribute type is CIAttributeTypeDistance and whose display name is Radius. Default value: 300.00 Minimum: 0.00 Maximum: 0.00 Slider minimum: 0.00 Slider maximum: 800.00 Identity: 300.00 

这应该让你开始…虽然我不知道为什么这会产生超过白色梯度在iOS中品红色,而它产生了一个在黑色梯度在Quartz Composer品红。 (如果您还没有使用过Quartz Composer,那么它就包含在Apple的开发工具中,并且非常适合testingCore Imagefilter)

为了做任何有用的事情,我相信你必须在之后裁剪 – 否则将有无限的尺寸(根据Quartz Composer)。

 // set up the parameters for the filter CIVector *centerVector = [CIVector vectorWithX:150 Y:150]; CIColor *color0 = [CIColor colorWithRed:1.0 green:0.0 blue:1.0 alpha:1.0]; CIColor *color1 = [CIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]; NSNumber *radius = [NSNumber numberWithFloat:300.0]; // create a CIImage and apply the filter CIImage *theCIImage = [[CIImage alloc] init]; theCIImage = [CIFilter filterWithName:@"CIGaussianGradient" keysAndValues:@"inputCenter", centerVector, @"inputColor0", color0, @"inputColor1", color1, @"inputRadius", radius, nil].outputImage; // crop the image using CICrop CGRect rect = CGRectMake(0.0, 0.0, 600.0, 600.0); theCIImage = [CIFilter filterWithName:@"CICrop" keysAndValues:kCIInputImageKey, theCIImage, @"inputRectangle", rect, nil].outputImage;