截屏并高斯模糊

来源:互联网 发布:windows live注册 编辑:程序博客网 时间:2024/06/11 14:48

//截屏获得当前的image

- (UIImage *)imageOfView:(UIView *)view

{

    UIGraphicsBeginImageContext(view.bounds.size);//currentView 当前的view

    

    [view.layerrenderInContext:UIGraphicsGetCurrentContext()];

    

    UIImage *viewImage =UIGraphicsGetImageFromCurrentImageContext();

    

    UIGraphicsEndImageContext();

    

   return viewImage;

}

//高斯模糊

- (void)blur{

   UIImageView *imageView = [[UIImageViewalloc] initWithFrame:CGRectMake(0,0, kScreenWidth,kScreenHeight)];

   CIContext *context = [CIContextcontextWithOptions:nil];

   UIImage *oldImage = [selfimageOfView:self.view];

   CIImage *inputImage = [[CIImagealloc] initWithImage:oldImage];

    // create gaussian blur filter

   CIFilter *filter = [CIFilterfilterWithName:@"CIGaussianBlur"];

    [filtersetValue:inputImage forKey:kCIInputImageKey];

    [filter setValue:[NSNumbernumberWithFloat:20.0]forKey:@"inputRadius"];

    // blur image

   CIImage *result = [filter valueForKey:kCIOutputImageKey];

   CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];

   UIImage *image = [UIImageimageWithCGImage:cgImage];

   CGImageRelease(cgImage);

    imageView.image = image;

   NSLog(@"%f-----%f",imageView.frame.size.height,imageView.frame.size.width);

    [self.viewaddSubview:imageView];


}



0 0