在iPhone SDK中将图像转换为黑白,棕褐色,灰度等



我在谷歌上搜索,如果我得到一些添加效果的图像,如Black & White, Sepia, grayScale等。我发现了一个有用的链接,用于在Sepia中转换图像,但没有什么可以在B&W或灰度中转换它。

链接http://groups.google.com/group/iphonesdkdevelopment/browse_thread/thread/b987b02deec08b9f

经过代码后,我知道我们需要改变RBG,但如何获得B&WgrayScale的RBG。这类效果的RBG比率是多少?

任何帮助都将是感激的。

Thanks In Advance

你可以得到一个B&W图像

-(UIImage *)convertOriginalImageToBWImage:(UIImage *)originalImage
{
UIImage *newImage;
CGColorSpaceRef colorSapce = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate(nil, originalImage.size.width * originalImage.scale, originalImage.size.height * originalImage.scale, 8, originalImage.size.width * originalImage.scale, 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];
CGImageRelease(bwImage);
UIGraphicsBeginImageContextWithOptions(originalImage.size, NO, originalImage.scale);
[resultImage drawInRect:CGRectMake(0.0, 0.0, originalImage.size.width, originalImage.size.height)];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;
}

您需要按照链接(google groups)中给出的方式进行操作。

另外,你可以在这个链接中找到逻辑,将它们转换为灰度。

最新更新