views:

56

answers:

1

Hello everyone!

I have another quartz 2d (iphone) question:

How to change all the colors of an ImageView to black and white and leave only red ???

DD

A: 
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);

This is something that i found on other forums, AND IT SEEMS TO WORK!!!

DailyDoggy