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

    效果图:

  • 相关阅读:
    P1194 买礼物(建模)
    024 Android 对话框(AlertDialog)的应用(与Android黑马培训班的024相对照学习)
    023 Android 滚动视图(ScollView)
    022 Android 开源项目使用指南
    021 Android 日历视图(Calendarview)
    020 ProgressBar(进度条)、SeekBar(拖动条)与星级评分条(RatingBar)
    019 Android 程序调试技巧汇总
    018 Android 单选按钮(RadioButton)和复选框(CheckBox)的使用
    017 Android ToggleButton(开关函数)与switch (开关按钮)
    016 Android Toast语句应用
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7045626.html
Copyright © 2011-2022 走看看