• 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]);
    }
    复制代码

    效果图:

  • 相关阅读:
    Java8 Comparator 排序方法
    IDEA自动清理优化import包
    图灵的文章“Computing machinery and intelligence”译文
    NLP第一课(我也是才开始学)
    java面试基础篇(一)
    python基本排序算法
    python基础面试题整理---从零开始 每天十题(04)
    python基础面试题整理---从零开始 每天十题(03)
    python基础面试题整理---从零开始 每天十题(02)
    python基础面试题整理---从零开始 每天十题(01)
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7045626.html
Copyright © 2020-2023  润新知