如何仅在iPhone的图像的一部分填充颜色

时间:2009-07-29 18:12:14

标签: iphone graphics

我使用以下代码填充iPhone中的图像颜色。

- (UIImage *)colorizeImage:(UIImage *)baseImage color:(UIColor *)theColor {
UIGraphicsBeginImageContext(baseImage.size);

CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect area = CGRectMake(0, 0, baseImage.size.width, baseImage.size.height);

CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -area.size.height);

CGContextSaveGState(ctx);
CGContextClipToMask(ctx, area, baseImage.CGImage);

[theColor set];
CGContextFillRect(ctx, area);

CGContextRestoreGState(ctx);

CGContextSetBlendMode(ctx, kCGBlendModeMultiply);

CGContextDrawImage(ctx, area, baseImage.CGImage);

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return newImage;

}

但是上面的代码填充了整个图像中的颜色。我只想感觉上半部分,比如图像的1/4。那怎么办呢?

1 个答案:

答案 0 :(得分:1)

我想通了..将CGContextFillRect的行改为。 CGContextFillRect(ctx,CGRectMake(0,0,baseImage.size.width,100));