- (UIImage *) blurImage:(UIImage *) image
{
/*
What we need:
CIContext
CIImage
CIImage
We create a CIContext, a CIImage and a CIFilter.
Then we pass the CIImage to the CIFilter.
We grap the filtered Image from the outputImage-property of the CIFilter and render that with the context to a CGImageRef
Finally, we create a UIImage from the CGImageRef and return it
*/
//We create the context first to get that out of the way
//TODO: 1. Create a CIContext with options nil (a default context)
CIContext * context = [CIContext contextWithOptions:nil];
//Now we create a CIImage that can be filtered with a CIFilter
//TODO: 2. Create a CIImage from the UIImage* image (use -initWithImage)
CIImage * ciImage = [[CIImage alloc] initWithImage:image];
//We create our Filter now and set it up
//TODO: 3. Create a blur-filter. It's name is @"CIGaussianBlur"
CIFilter * blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
//TODO: 4. Set the CIImage form Step 2 as the inputImage on the blur-filter
//HINT: use - setValue:(your blur-filter) froKey:(the input-image-key)
[blurFilter setValue:ciImage forKey:kCIInputImageKey];
//Now we render the CIImage with our blur-filter
//TODO: 5. Create a CGImageRef with the context from Step 1.
//HINT: - createCGImage: fromRect:
//HINT: use the outputImage-property of the blur-filter
//HINT: the outputImage knows it's size, because it was created from another image (the UIImage)
//you can get the required rect from the -extent method of your outputImage
CGImageRef ref = [context createCGImage:blurFilter.outputImage fromRect:[blurFilter.outputImage extent]];
//Finaly, we create a new UIImage from the CGImageRef
//TODO: 6. create a UIImage from the CGImageRef.
//HINT: There's a convenience-static-method in the UIImage for that: +imageWithCGImage:
return [UIImage imageWithCGImage:ref];
}
Monday, 1 December 2014
Create UIImage to a Blur UIImage iOS 8 default blur view
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment