diff -r 4b36933dce1d -r 23c50be687a9 cocoaTouch/otherSrc/UIImageExtra.m --- a/cocoaTouch/otherSrc/UIImageExtra.m Sat May 15 09:21:25 2010 +0000 +++ b/cocoaTouch/otherSrc/UIImageExtra.m Sun May 16 17:23:30 2010 +0000 @@ -77,5 +77,34 @@ return nil; } } + +-(UIImage *)convertImageToGrayScale:(UIImage *)image { + // Create image rectangle with current image width/height + CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height); + + // Grayscale color space + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); + + // Create bitmap content with current image size and grayscale colorspace + CGContextRef context = CGBitmapContextCreate(nil, image.size.width, image.size.height, 8, 0, colorSpace, kCGImageAlphaNone); + + // Draw image into current context, with specified rectangle + // using previously defined context (with grayscale colorspace) + CGContextDrawImage(context, imageRect, [image CGImage]); + + // Create bitmap image info from pixel data in current context + CGImageRef imageRef = CGBitmapContextCreateImage(context); + + // Create a new UIImage object + UIImage *newImage = [UIImage imageWithCGImage:imageRef]; + + // Release colorspace, context and bitmap information + CGColorSpaceRelease(colorSpace); + CGContextRelease(context); + CFRelease(imageRef); + + // Return the new grayscale image + return newImage; +} @end