【发布时间】:2018-02-14 17:36:22
【问题描述】:
我正在为 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;
}
【问题讨论】:
标签: ios objective-c uiimage core-graphics