zoukankan      html  css  js  c++  java
  • 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]);
    }

    效果图:

  • 相关阅读:
    Mac上Homebrew的使用 (Homebrew 使 OS X 更完整)
    Redis 集群方案
    mac下java 开发环境搭建
    [转贴]有关Angular 2.0的一切
    XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
    【人人为我,我为人人】大量免费电子书持续更新中,2014年8月13日更新
    KAFKA分布式消息系统
    Apache Kafka —一个不同的消息系统
    分布式消息系统Kafka初步
    mysql exists 如何使用
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5391025.html
Copyright © 2011-2022 走看看