图片处理--处理成灰色图片,高斯模糊

来源:互联网 发布:通达信 kdj源码 编辑:程序博客网 时间:2024/04/29 12:28

把已知图片处理成灰色的图片。

-(UIImage*)getGrayImage:(UIImage*)sourceImage

{

    int width = sourceImage.size.width;

    int height = sourceImage.size.height;

    

    CGColorSpaceRef colorSpace =CGColorSpaceCreateDeviceGray();

    CGContextRef context =CGBitmapContextCreate (nil,width,height,8,0,colorSpace,kCGBitmapByteOrderDefault);

    CGColorSpaceRelease(colorSpace);   

    if (context ==NULL) {

        returnnil;

    }  

    CGContextDrawImage(context,CGRectMake(0,0, width, height), sourceImage.CGImage);

    UIImage *grayImage = [UIImageimageWithCGImage:CGBitmapContextCreateImage(context)];

    CGContextRelease(context);

    return grayImage;

}

//高斯处理

- (UIImage *)getGaussianBlurWithImage:(UIImage *)image

{

    CIContext *context = [CIContextcontextWithOptions:nil];

    CIImage *inputimage = [[CIImagealloc]initWithImage:image];

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

    [filter setValue:inputimageforKey:kCIInputImageKey];

    //数字代表图片的模糊程度

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

    CIImage *result = [filtervalueForKey:kCIOutputImageKey];

    CGImageRef cgimage = [contextcreateCGImage:result fromRect:[resultextent]];

    UIImage *reImage = [UIImageimageWithCGImage:cgimage];

    CGImageRelease(cgimage);

    return reImage;

}


0 0
原创粉丝点击