objective-c - CI高斯梯度失效

标签 objective-c gradient core-image gaussian cifilter

我尝试生成 CIGaussianGradient 但在控制台中得到以下输出

012-08-03 16:45:10.423 OGL[2882:303] *** Assertion failure in -[NSBitmapImageRep initWithCIImage:], /SourceCache/AppKit/AppKit-1187/AppKit.subproj/NSBitmapImageRep.m:1531
2012-08-03 16:45:10.425 OGL[2882:303] An uncaught exception was raised
2012-08-03 16:45:10.427 OGL[2882:303] <CIImage: 0x400353620> {
    FEPromise: 0x4007106e0 extent: infinite; filter CIGaussianGradient: 0x4001ecde0; kernel gaussianDot; center [150 150] color0 <CGColor 0x40021b6e0> [<CGColorSpace 0x400417ca0> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; Generic RGB Profile)] ( 1 1 1 0 ) color1 <CGColor 0x400236180> [<CGColorSpace 0x400417ca0> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; Generic RGB Profile)] ( 0 0 0 1 ) radius_recip 0.00333333
} parameter to -initWithCIImage: is not of finite extent

虽然我的应用代码如下所示:

CIFilter *F = [CIFilter filterWithName:@"CIGaussianGradient"];
[F setDefaults];
[F setValue:[CIColor colorWithRed:1 green:1 blue:1 alpha:0] forKey:@"inputColor0"];
[F setValue:[CIColor colorWithRed:0 green:0 blue:0 alpha:1] forKey:@"inputColor1"];
CIImage *Fimg = [F valueForKey:@"outputImage"];
NSBitmapImageRep *FBitmap = [[NSBitmapImageRep alloc] initWithCIImage:Fimg];

我的错误在哪里?

最佳答案

必须将无限平面的一部分裁剪为图像。 请参阅:An example use of CIGaussianGradient filter for Core Image

在下面的示例中,创建了一个 600 x 600 的图像。

示例:

// 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;

NSBitmapImageRep *FBitmap = [[NSBitmapImageRep alloc] initWithCIImage:theCIImage];

关于objective-c - CI高斯梯度失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11797082/

相关文章:

ios - 使用平移、旋转和捏合手势编辑后如何保存 UIImage

objective-c - objective-c :imageNamed加载不存在的图像

ios - 如何处理 iOS 中的不同方向

CSS Flex Box - 有没有办法使用::Before::After 自动对齐中心,这样你就可以添加内容

classification - 通过神经网络分类器计算图像显着性

ios - 如何优化此图像处理用最接近的可用 RGB 替换图像上的所有像素?

ios - 语义问题-分配给只读属性

IOS/objective-C :EventKit EKReminders compared with EKEvents

javascript - 您可以使用 CSS 或 JavaScript 创建逐渐变为不透明的渐变吗?

cocoa - 制作一个 CoreImage 过滤器而不是对所有行像素求和,类似于 CIRowAverage?