我是否可以使用API(可能在coreimage中)将特定颜色的所有像素更改为另一种颜色?我想我可以通过迭代图像的每个像素来弄清楚如何手动完成它,但我希望有更优雅(和更高性能)的方法来实现这一点。
答案 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;
原始图片
红色图片
答案 1 :(得分:0)
您应该可以使用Core Image过滤器CIColorCube。我之前没有使用它,但我相信它可以让你将输入颜色的范围映射到不同的输出颜色。