小编bry*_*300的帖子

iOS 6上的CIGaussianBlur和CIAffineClamp

我试图在iOS 6上使用CoreImage模糊图像,而没有明显的黑色边框.Apple文档声明使用CIAffineClamp过滤器可以实现此目的,但我无法从过滤器获取输出图像.这是我尝试过的,但不幸的是,当我访问[clampFilter outputImage]时会创建一个空图像.如果我只执行模糊,则会生成图像,但使用黑色边框.

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);
Run Code Online (Sandbox Code Playgroud)

iphone objective-c core-image ios

9
推荐指数
1
解决办法
5200
查看次数

标签 统计

core-image ×1

ios ×1

iphone ×1

objective-c ×1