颜色与十六进制值的互转

来源:互联网 发布:java log文件解析入库 编辑:程序博客网 时间:2024/05/18 00:11

转自:达内科技

颜色与十六进制值的互转

作者:广州达内科技更新时间:2013-03-04 13:35 来源:Android开发培训

1.//字符串转颜色  
2.- (UIColor *) colorWithHexString: (NSString *) stringToConvert {  
3.    NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];  
4.      
5.    if ([cString length] < 6)  
6.        return [UIColor whiteColor];  
7.    if ([cString hasPrefix:@"#"])  
8.        cString = [cString substringFromIndex:1];  
9.    if ([cString length] != 6)  
10.        return [UIColor whiteColor];  
11.      
12.    NSRange range;  
13.    range.location = 0;  
14.    range.length = 2;  
15.    NSString *rString = [cString substringWithRange:range];  
16.      
17.    range.location = 2;  
18.    NSString *gString = [cString substringWithRange:range];  
19.      
20.    range.location = 4;  
21.    NSString *bString = [cString substringWithRange:range];  
22.      
23.    unsigned int r, g, b;  
24.    [[NSScanner scannerWithString:rString] scanHexInt:&r];  
25.    [[NSScanner scannerWithString:gString] scanHexInt:&g];  
26.    [[NSScanner scannerWithString:bString] scanHexInt:&b];  
27.      
28.    return [UIColor colorWithRed:((float) r / 255.0f)  
29.                           green:((float) g / 255.0f)  
30.                            blue:((float) b / 255.0f)  
31.                           alpha:1.0f];  
32.}  
33. 
34.//颜色转字符串  
35.- (NSMutableArray *) changeUIColorToRGB:(UIColor *)color {  
36.    const CGFloat *cs = CGColorGetComponents(color.CGColor);  
37.      
38.    NSString *r = [NSString stringWithFormat:@"%@", [self ToHex:cs[0] * 255]];  
39.    NSString *g = [NSString stringWithFormat:@"%@", [self ToHex:cs[1] * 255]];  
40.    NSString *b = [NSString stringWithFormat:@"%@", [self ToHex:cs[2] * 255]];  
41.    return [NSString stringWithFormat:@"#%@%@%@", r, g, b];  
42.}  
43. 
44.//十进制转十六进制  
45.- (NSString *)ToHex:(int)tmpid {  
46.    NSString *endtmp = @"";  
47.    NSString *nLetterValue;  
48.    NSString *nStrat;  
49.    int ttmpig = tmpid % 16;  
50.    int tmp = tmpid / 16;  
51.    switch (ttmpig) {  
52.        case 10:  
53.            nLetterValue = @"A"; break;  
54.        case 11:  
55.            nLetterValue = @"B"; break;  
56.        case 12:  
57.            nLetterValue = @"C"; break;  
58.        case 13:  
59.            nLetterValue = @"D"; break;  
60.        case 14:  
61.            nLetterValue = @"E"; break;  
62.        case 15:  
63.            nLetterValue = @"F"; break;  
64.        default:nLetterValue = [[NSString alloc] initWithFormat:@"%i", ttmpig];  
65.    }  
66.    switch (tmp) {  
67.        case 10:  
68.            nStrat = @"A"; break;  
69.        case 11:  
70.            nStrat = @"B"; break;  
71.        case 12:  
72.            nStrat = @"C"; break;  
73.        case 13:  
74.            nStrat = @"D"; break;  
75.        case 14:  
76.            nStrat = @"E"; break;  
77.        case 15:  
78.            nStrat = @"F"; break;  
79.        default:nStrat = [[NSString alloc] initWithFormat:@"%i", tmp];  
80.    }  
81.    endtmp = [[NSString alloc] initWithFormat:@"%@%@", nStrat, nLetterValue];  
82.    return endtmp;  
83.}

原创粉丝点击