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

标签 iphone objective-c image-processing uiimage

我在谷歌上搜索是否找到了一些可以给图像添加效果的东西,比如黑白SepiagrayScale等。我找到了一个用于将图像转换为 Sepia 的有用链接,但没有任何可以将其转换为黑白或灰度的链接。

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

浏览完代码后,我知道我们需要为此更改 RBG,但如何获取 B&WgrayScale 的 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/

相关文章:

iphone - 从 TextMate 构建 iPhone 模拟器

iPhone:删除/删除 SQLite 数据库?

objective-c - 使用 NSOutlineView 作为文件浏览器,从给定目录开始

ios - iOS如何在一个巨大的字符串的2个字符串之间找到多个字符串?

c++ - 从 C++ 中的 Blob 检测中提取 OpenCV 轮廓数组

iphone - 禁用导航项后退栏按钮

iphone - symbolicatecrash - 包名称中的空格阻止方法名称显示在崩溃报告中

iphone - objective-c 中iPhone的ftp客户端库

java - 我如何在 Java 中确定图像的色彩空间?

Android:如何使用opencv获得良好的canny边缘检测的高低阈值