我司產(chǎn)品說要在我司APP里搞一個(gè)高斯模糊的效果,之前沒做過,就只能先查資料了驯杜。
先是查到一個(gè)很nubility的三方類GPUImage,但是看了之后感覺太過繁瑣做个,我只是想簡(jiǎn)單的實(shí)現(xiàn)一個(gè)高斯模糊鸽心。后聽我們組長(zhǎng)說直接使用系統(tǒng)方法就可以實(shí)現(xiàn)。再一查居暖,果然顽频,使用CIImage的話,九行代碼就解決了太闺。
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"xiaoke"]];
// create gaussian blur filter
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:4] forKey:@"inputRadius"];//設(shè)置模糊度
// blur image
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:inputImage.extent];
UIImage *blurImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
效果如下: