cocoaTouch/otherSrc/UIImageExtra.m
changeset 3463 23c50be687a9
parent 3361 cfc6cd502f85
child 3492 07256e1ad559
--- 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