使用Quartz 2D绘制时的模糊效果

时间:2013-10-03 07:19:59

标签: iphone ios ipad core-graphics quartz-graphics

我希望在这张照片中画出如右图所示的模糊效果:

Blur effect

目前,我正在使用以下代码进行绘制,但这只会在左侧绘制图片:

CGContextSetLineWidth(currentContext, thickness);    
CGContextSetLineCap(currentContext, kCGLineCapRound);
CGContextBeginPath(currentContext);
CGContextMoveToPoint(currentContext, x, y);
CGContextAddLineToPoint(currentContext, x, y);
CGContextMoveToPoint(currentContext, x, y);
CGContextStrokePath(currentContext);

请给我任何想法?

此致 亚历山大

1 个答案:

答案 0 :(得分:2)

CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage = [[CIImage alloc] initWithImage:@"your image"];
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:9.0f] forKey:@"inputRadius"];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];
UIImage *blurrImage = [UIImage imageWithCGImage:cgImage];

使用此代码,这将为您提供模糊效果。