将图像变为黑白?

3

我有一个关于Quartz 2D(iPhone)的问题:

如何将ImageView的所有颜色都更改为黑白,并仅保留红色?

谢谢!

1个回答

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

我在其他论坛上发现了这个方法,看起来好像有效!!!


加一分给你,这个有效,我甚至使用了这段代码...谢谢啊伙计。 - Sabby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接