- (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;
}
파라미터를 추가하면 scale도 변경 가능하네요.
'Dev > iOS' 카테고리의 다른 글
[Objective-C] Property - (assign, retain, copy) (1) | 2011.10.05 |
---|---|
[Objective-C] UIView 각도 변경하기 (0) | 2011.09.27 |
[Objective-C] 이미지 flip 처리 (0) | 2011.09.23 |
[Objective-C] instance 의 class 종류를 확인하는 메소드-isKindOfClass (0) | 2011.08.30 |
[XCode4] SVN Repository 등록하기 (0) | 2011.08.03 |