我在谷歌上搜索是否找到了一些可以给图像添加效果的东西,比如黑白
、Sepia
、grayScale
等。我找到了一个用于将图像转换为 Sepia
的有用链接,但没有任何内容可以将其转换为黑白或灰度。
这是链接http://groups.google.com/group/iphonesdkdevelopment/browse_thread/thread/b987b02deec08b9f
浏览完代码后,我知道我们需要为此更改 RBG,但如何获取 B&W
和 grayScale
的 RBG。此类效果的 RBG 比率是多少。
任何帮助将不胜感激。
提前致谢
最佳答案
您可以通过以下方式获取黑白图像
-(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;
}
关于iphone - 在 iPhone SDK 中将图像转换为黑白、棕褐色、灰度等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8613290/