2012-08-03 32 views
2

我嘗試生成CIGaussianGradient但我得到休耕輸出控制檯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]; 

哪裏是我的錯?

回答

3

無限平面的一部分必須被裁剪爲圖像。 參見: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]; 
+0

如何確定裁切尺寸? – 2016-03-24 11:43:31

+0

彼得拉皮斯。見上面的編輯。該例中創建了一個600 x 600的圖像。 – 2016-03-25 02:11:53