你的位置:首页 > 操作系统

[操作系统]IOS Quartz2D 通过UIColor生成图片


普通生成

示例代码:

//这里实现普通生成图片的方法- (void)drawRect:(CGRect)rect {  CGRect cxRect = CGRectMake(0, 0, 100, 100);    UIGraphicsBeginImageContextWithOptions(cxRect.size, NO, 0);    [[UIColor redColor] setFill];    UIRectFill(cxRect);    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(20, 20, 100, 100)];    imageView.image = image;    [self addSubview:imageView];}

效果图:

渐变颜色生成

示例代码:

//这里实现渐变颜色生成图片的方法- (void)drawRect:(CGRect)rect {  CGRect cxRect = CGRectMake(0, 0, 1, 1);  UIGraphicsBeginImageContextWithOptions(cxRect.size, NO, 0);  CGContextRef context = UIGraphicsGetCurrentContext();  UIColor * beginColor = [UIColor greenColor];  UIColor * endColor = [UIColor redColor];  drawLinearGradient(context, cxRect, beginColor.CGColor, endColor.CGColor);  CGContextRestoreGState(context);    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();  UIGraphicsEndImageContext();  UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(20, 20, 100, 100)];    imageView.image = image;    [self addSubview:imageView];}void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor){  CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();  CGFloat locations[] = { 0.0, 1.0 };    NSArray *colors = @[(__bridge id) startColor, (__bridge id) endColor];    CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) colors, locations);  CGPoint startPoint = CGPointMake(rect.size.width/2, 0);  CGPoint endPoint = CGPointMake(rect.size.width/2, rect.size.height/1.5);    CGContextSaveGState(context);  CGContextAddRect(context, rect);  CGContextClip(context);  CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);  CGContextSetStrokeColorWithColor(context, [[UIColor clearColor] CGColor]);}

效果图: