2010-08-19 190 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

相關問題