+ (UIImage *) Blurwithcoreimage: (UIImage *) sourceimage withframe: (CGRect) frame
{
Ciimage *inputimage = [Ciimage imageWithCGImage:sourceImage.CGImage];
Apply affine-clamp Filter to stretch the image so, it does not look shrunken when Gaussian blur is applied
Cgaffinetransform transform = cgaffinetransformidentity;
Cifilter *clampfilter = [Cifilter filterwithname:@ "Ciaffineclamp"];
[Clampfilter setvalue:inputimage forkey:@ "Inputimage"];
[Clampfilter setvalue:[nsvalue valuewithbytes:&transform objctype: @encode (cgaffinetransform)] forKey:@ " Inputtransform "];
Apply Gaussian blur filter with radius of 30
Cifilter *gaussianblurfilter = [Cifilter filterwithname: @ "Cigaussianblur"];
[Gaussianblurfilter setValue:clampFilter.outputImage Forkey: @ "Inputimage"];
[Gaussianblurfilter setvalue:@3 forkey:@ "Inputradius"];
Cicontext *context = [Cicontext Contextwithoptions:nil];
Cgimageref cgimage = [Context createCGImage:gaussianBlurFilter.outputImage fromrect:[inputimage extent];
Set up output context.
Uigraphicsbeginimagecontext (frame.size);
Cgcontextref Outputcontext = Uigraphicsgetcurrentcontext ();
CGCONTEXTSCALECTM (Outputcontext, 1.0,-1.0);
CGCONTEXTTRANSLATECTM (outputcontext, 0,-frame.size.height);
Draw base image.
Cgcontextdrawimage (Outputcontext, Frame, cgimage);
Apply White Tint
Cgcontextsavegstate (Outputcontext);
Cgcontextsetfillcolorwithcolor (Outputcontext, [Uicolor colorwithwhite:1 alpha:0.2]. Cgcolor);
Cgcontextfillrect (Outputcontext, frame);
Cgcontextrestoregstate (Outputcontext);
Output image is ready.
UIImage *outputimage = Uigraphicsgetimagefromcurrentimagecontext ();
Cgimagerelease (Cgimage);
Uigraphicsendimagecontext ();
return outputimage;
}
IOS Hair Glass Pictures