Ios 更改图像目标c中的颜色

Ios 更改图像目标c中的颜色,ios,objective-c,Ios,Objective C,我有一个黑白图像,我想在objective-c中更改蓝色的黑色和黄色的白色(例如) 我怎么能这样做 谢谢您可以使用Core Image来执行此操作 UIImage *bwImage = ... // Get your image from somewhere CGImageRef bwCGImage = bwImage.CGImage; CIImage *bwCIImage = [CIImage imageWithCGImage:bwCGImage]; CIFilter *filter = [

我有一个黑白图像,我想在objective-c中更改蓝色的黑色和黄色的白色(例如)

我怎么能这样做


谢谢

您可以使用Core Image来执行此操作

UIImage *bwImage = ... // Get your image from somewhere
CGImageRef bwCGImage = bwImage.CGImage;
CIImage *bwCIImage = [CIImage imageWithCGImage:bwCGImage];

CIFilter *filter = [CIFilter filterWithName:@"CIHueAdjust"];

// Change the float value here to change the hue
[filter setValue:[NSNumber numberWithFloat:0.5] forKey: @"inputAngle"]; 

// input black and white image
[filter setValue:bwCIImage forKey:kCIInputImageKey];

// get output from filter
CIImage *hueImage = [filter valueForKey:kCIOutputImageKey];

CIContext *context = [CIContext contextWithOptions:nil];

CGImageRef cgImage = [context createCGImage:hueImage
                                 fromRect:[hueImage extent]];

UIImage *coloredImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);

有关更多信息,请参阅文档:

您可以使用Core Image执行此操作

UIImage *bwImage = ... // Get your image from somewhere
CGImageRef bwCGImage = bwImage.CGImage;
CIImage *bwCIImage = [CIImage imageWithCGImage:bwCGImage];

CIFilter *filter = [CIFilter filterWithName:@"CIHueAdjust"];

// Change the float value here to change the hue
[filter setValue:[NSNumber numberWithFloat:0.5] forKey: @"inputAngle"]; 

// input black and white image
[filter setValue:bwCIImage forKey:kCIInputImageKey];

// get output from filter
CIImage *hueImage = [filter valueForKey:kCIOutputImageKey];

CIContext *context = [CIContext contextWithOptions:nil];

CGImageRef cgImage = [context createCGImage:hueImage
                                 fromRect:[hueImage extent]];

UIImage *coloredImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);

有关更多信息,请参阅文档:

谢谢您的回答,但我不知道要在哪里设置要替换的颜色?(黑色乘以蓝色,白色乘以黄色)对于实际的颜色替换,您需要使用不同的过滤器
CIColorCube
可能就是您想要的。在ColorCube中,定义颜色如何映射到不同的颜色。您可以在答案中的链接中阅读有关CIColorCube的内容。我看不到任何CIColorCube的示例,请问在哪里可以找到?谢谢您的回答,但我不明白我要在哪里设置要替换的颜色?(黑色乘以蓝色,白色乘以黄色)对于实际的颜色替换,您需要使用不同的过滤器
CIColorCube
可能就是您想要的。在ColorCube中,定义颜色如何映射到不同的颜色。你可以在答案中的链接中阅读关于CIColorCube的内容。我看不到任何CIColorCube的例子,我在哪里可以找到?