如何改变整个uiimage的颜色

时间:2012-02-03 14:37:44

标签: image-processing uiimage

我有一个UIImage,中间有一个图案,图像的其余部分是透明的。它是一个png文件,模式只有一种颜色。我创建了一个表,用户可以从中选择颜色(UIColor),我想将模式的颜色更改为用户选择的颜色。我知道如何更改图像中像素的颜色,但有没有办法改变整个图案的颜色,还是我必须逐个更改每个像素?

2 个答案:

答案 0 :(得分:1)

将图像和要更改的颜色输入到下面的方法中。将根据轮廓返回一个新鲜的彩色图像。

-(UIImage *)returnImage:(UIImage *)image coloured:(UIColor *)colour {

UIGraphicsBeginImageContext(image.size);
CGContextRef context = UIGraphicsGetCurrentContext();

CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);

CGContextTranslateCTM(context, 0, image.size.height);
CGContextScaleCTM(context, 1.0, -1.0);

CGContextClipToMask(context, rect, image.CGImage);
CGContextAddRect(context, rect);
CGContextDrawPath(context,kCGPathFill);

CGContextSetFillColorWithColor(context, colour.CGColor);
CGContextFillRect(context, rect);

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;

}

答案 1 :(得分:0)

我在这里遇到了另一个话题,我不记得它叫做什么!! :(但万一,如果你寻找图像颜色处理,你会发现它:)