• 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]);
    }

    效果图:

  • 相关阅读:
    flex自适应小例子
    hasOwnProperty 递归 简单回调 链式调用
    H5音频和视频
    html特殊字符
    css巧妙实现分隔线
    SQL Server中数据的存储
    SQL高级查询
    SQL SERVER查询到的数据转为Json格式
    SQL动态生成列
    SQL合并查询数据,以逗号分隔
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5391025.html
Copyright © 2020-2023  润新知