彩色图片变灰

来源:互联网 发布:零基础学java参考书 编辑:程序博客网 时间:2024/04/29 05: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,kCGImageAlphaNone);

    CGColorSpaceRelease(colorSpace);

    

    if (context == NULL) {

        return nil;

    }

    

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

    CGImageRef grayImageRef = CGBitmapContextCreateImage(context);

    UIImage *grayImage = [UIImageimageWithCGImage:grayImageRef];

    CGContextRelease(context);

    CGImageRelease(grayImageRef);

    

    return grayImage;

}

0 0