首页 > 代码库 > IOS Quartz2D 通过UIColor生成图片
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]); }
效果图:
IOS Quartz2D 通过UIColor生成图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。