CIGaussianBlur和iOS 6上的CIAffineClamp

我想在iOS 6上使用CoreImage模糊图像,而没有明显的黑色边框。 苹果文档指出,使用CIAffineClampfilter可以实现这一点,但我无法从filter获得输出图像。 这是我的尝试,但不幸的是,当我访问[clampFilter outputImage]时创build一个空的图像。 如果我只执行模糊的图像产生,但与黑暗的插入边界。

CIImage *inputImage = [[CIImage alloc] initWithCGImage:self.CGImage]; CIContext *context = [CIContext contextWithOptions:nil]; CGAffineTransform transform = CGAffineTransformIdentity; CIFilter *clampFilter = [CIFilter filterWithName:@"CIAffineClamp"]; [clampFilter setValue:inputImage forKey:kCIInputImageKey]; [clampFilter setValue:[NSValue valueWithBytes:&transform objCType:@encode(CGAffineTransform)] forKey:@"inputTransform"]; CIImage *outputImage = [clampFilter outputImage]; CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur" keysAndValues:kCIInputImageKey, outputImage, @"inputRadius", [NSNumber numberWithFloat:radius], nil]; outputImage = [blurFilter outputImage]; CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; UIImage *blurredImage = [UIImage imageWithCGImage:cgimg]; CGImageRelease(cgimg); 

CIAffineClampfilter将您的范围设置为无限,然后混淆您的上下文。 尝试保存预钳位范围CGRect,然后将其提供给上下文初始值设定项。