iOS 获取十六进制颜色显示RGB,根据颜色画图片

来源:互联网 发布:淘宝正品aj鞋店 编辑:程序博客网 时间:2024/04/28 06:39

//从十六进制字符串获取颜色,

//color:支持@“#123456” @“0X123456” @“123456”三种格式


+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha

{

    //删除字符串中的空格

    NSString *cString = [[colorstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]uppercaseString];

    // String should be 6 or 8 characters

   if ([cStringlength] <6)

    {

       return [UIColorclearColor];

    }

    // strip 0X if it appears

    //如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾

   if ([cStringhasPrefix:@"0X"])

    {

        cString = [cStringsubstringFromIndex:2];

    }

    //如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾

   if ([cStringhasPrefix:@"#"])

    {

        cString = [cStringsubstringFromIndex:1];

    }

   if ([cStringlength] !=6)

    {

       return [UIColorclearColor];

    }

    

    // Separate into r, g, b substrings

   NSRange range;

    range.location =0;

    range.length =2;

   //r

   NSString *rString = [cStringsubstringWithRange:range];

   //g

    range.location =2;

   NSString *gString = [cStringsubstringWithRange:range];

   //b

    range.location =4;

   NSString *bString = [cStringsubstringWithRange:range];

    

    // Scan values

   unsignedint r, g, b;

    [[NSScannerscannerWithString:rString]scanHexInt:&r];

    [[NSScannerscannerWithString:gString]scanHexInt:&g];

    [[NSScannerscannerWithString:bString]scanHexInt:&b];

   return [UIColorcolorWithRed:((float)r /255.0f) green:((float)g /255.0f)blue:((float)b /255.0f)alpha:alpha];

}


获取到颜色以后,画出这种颜色的图片

+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size

{

   CGRect rect =CGRectMake(0,0, size.width, size.height);

    UIGraphicsBeginImageContext(rect.size);

    CGContextRef context =UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context,color.CGColor);

   CGContextFillRect(context, rect);

    UIImage *img =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    

   return img;

}


1 0
原创粉丝点击