用另一种颜色替换uiimage中的颜色

时间:2014-03-28 06:24:43

标签: ios uiimage core-image

我是否可以使用API​​(可能在coreimage中)将特定颜色的所有像素更改为另一种颜色?我想我可以通过迭代图像的每个像素来弄清楚如何手动完成它,但我希望有更优雅(和更高性能)的方法来实现这一点。

2 个答案:

答案 0 :(得分:3)

您的图片颜色将替换为红色a代码

您的原始图片代码:

UIImageView *image1 =[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
[image1 setImage:[UIImage imageNamed:@"Lock.png"]];
[self.view addSubview:image1];

Rad Color图片代码

CGRect rect = CGRectMake(0, 0, image1.frame.size.width, image1.frame.size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToMask(context, rect, [UIImage imageNamed:@"Lock.png"].CGImage);
CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImage *flippedImage = [UIImage imageWithCGImage:img.CGImage
                                            scale:1.0 orientation: UIImageOrientationDownMirrored];

image1.image = flippedImage;

原始图片

enter image description here

红色图片

enter image description here

答案 1 :(得分:0)

您应该可以使用Core Image过滤器CIColorCube。我之前没有使用它,但我相信它可以让你将输入颜色的范围映射到不同的输出颜色。