I'm thinking that this is probably not possible but let's say the user converts a photo to B&W by tapping a button, is it possible to undo that action and make it colour again!?
Here's the code I'm using for B&W conversion:
Code:
UIImage *originalImage = photo1Holder.image; // this image we get from UIImagePickerController
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate(nil, originalImage.size.width, originalImage.size.height, 8, originalImage.size.width, colorSpace, 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(colorSpace);
photo1Holder.image = [UIImage imageWithCGImage:bwImage]; // This is result B/W image.
CGImageRelease(bwImage);