2010-08-19 208 views

回答

15
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; this image we get from UIImagePickerController 

    CGColorSpaceRef colorSapce = CGColorSpaceCreateDeviceGray(); 
    CGContextRef context = CGBitmapContextCreate(nil, originalImage.size.width, originalImage.size.height, 8, originalImage.size.width, colorSapce, kCGImageAlphaNone); 
    CGContextSetInterpolationQuality(context, kCGInterpolationHigh); 
    CGContextSetShouldAntialias(context, NO); 
    CGContextDrawImage(context, CGRectMake(0, 0, originalImage.size.width, originalImage.size.height), [originalImage CGImage]); 

    CGImageRef bwImage = CGBitmapContextCreateImage(context); 
    CGContextRelease(context); 
    CGColorSpaceRelease(colorSapce); 

    UIImage *resultImage = [UIImage imageWithCGImage:bwImage]; // This is result B/W image. 
    CGImageRelease(bwImage); 

这一点是我在其他论坛上发现,它似乎工作!

+0

为你+1,这工作,即使我用这段代码...谢谢你 – Sabby 2012-01-05 12:16:53

相关问题