1
私は画像を渡し、私が提供した塗りつぶした色でそのイメージングされたマスクを取得するUIImage用の1つのカテゴリを作成しています。今度は、単色の塗りつぶしの代わりにグラデーションを追加したいと思います。以下は、どのように単一の塗りつぶし色でマスクされたイメージを生成する方法です。どのようにして単一色ではなくグラデーションを追加できますか?コアグラフィックを使用してグラデーションの塗りつぶしカラーでUIImageを取得
- (UIImage *)imageMaskedWithGradientColor:(UIColor *)maskColor
{
NSParameterAssert(maskColor != nil);
CGRect imageRect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
UIImage *newImage = nil;
UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, self.scale);
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, 1.0f, -1.0f);
CGContextTranslateCTM(context, 0.0f, -(imageRect.size.height));
CGContextClipToMask(context, imageRect, self.CGImage);
CGContextSetFillColorWithColor(context, maskColor.CGColor);
CGContextFillRect(context, imageRect);
newImage = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();
return newImage;
}
私はプログラムでマスク画像を生成しています。あなたの解決策はうまくいかないでしょう。 –
あなたのimageViewはプログラム上の意味ですか? – Govaadiyo
私は、プログラムで画像を描くことを意味します。特定のデザインとそれにグラデーションを適用したマスク。 –