iPhoneで画像の色を塗りつぶすには、次のコードを使用しています。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/4thと言う。だからそれを行う方法?
私はそれを考え出しました。 CGContextFillRectの行をに変更します。 CGContextFillRect(ctx、CGRectMake(0、0、baseImage.size.width、100)); – rkb