创建一张纯色图片
// 创建一张纯色图片
+ (UIImage *)createImageColor:(UIColor *)color size:(CGSize)size
{
CGRect rect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
创建一张渐变色图片
// 创建一张渐变色图片
- (UIImage *)createImageSize:(CGSize)imageSize gradientColors:(NSArray *)colors percentage:(NSArray *)percents gradientType:(GradientType)gradientType {
NSAssert(percents.count <= 5, @"输入颜色数量过多,如果需求数量过大,请修改locations[]数组的个数");
NSMutableArray *ar = [NSMutableArray array];
for(UIColor *c in colors) {
[ar addObject:(id)c.CGColor];
}
// NSUInteger capacity = percents.count;
// CGFloat locations[capacity];
CGFloat locations[5];
for (int i = 0; i < percents.count; i++) {
locations[i] = [percents[i] floatValue];
}
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 1);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGColorSpaceRef colorSpace = CGColorGetColorSpace([[colors lastObject] CGColor]);
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)ar, locations);
CGPoint start;
CGPoint end;
switch (gradientType) {
case GradientFromTopToBottom:
start = CGPointMake(imageSize.width/2, 0.0);
end = CGPointMake(imageSize.width/2, imageSize.height);
break;
case GradientFromLeftToRight:
start = CGPointMake(0.0, imageSize.height/2);
end = CGPointMake(imageSize.width, imageSize.height/2);
break;
case GradientFromLeftTopToRightBottom:
start = CGPointMake(0.0, 0.0);
end = CGPointMake(imageSize.width, imageSize.height);
break;
case GradientFromLeftBottomToRightTop:
start = CGPointMake(0.0, imageSize.height);
end = CGPointMake(imageSize.width, 0.0);
break;
default:
break;
}
CGContextDrawLinearGradient(context, gradient, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
CGGradientRelease(gradient);
CGContextRestoreGState(context);
CGColorSpaceRelease(colorSpace);
UIGraphicsEndImageContext();
return image;
}
创建一张模糊效果图片
// 创建一张模糊效果图片
+ (UIImage *)createImageColor:(UIColor *)color size:(CGSize)size{
CGRect rect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}