【发布时间】:2014-09-19 10:31:09
【问题描述】:
我在我的程序中使用 svg 图像。首先我需要使用它的坐标绘制图像的轮廓,然后应该出现原始图像中的颜色的真实颜色。我使用了一些代码将十六进制代码更改为UIColor,但它不适用于每个图像。
请建议我一些可以用于 evry 图像的代码!
这是我使用的代码
-(UIColor *)colorWithHexString {
/* convert the string into a int */
unsigned int colorValueR,colorValueG,colorValueB,colorValueA;
UIColor *color;
NSString *hexStringCleared = [[[PocketSVG sharedManager]colorstr] stringByReplacingOccurrencesOfString:@"#" withString:@""];
if(hexStringCleared.length == 3) {
/* short color form */
hexStringCleared = [NSString stringWithFormat:@"%@%@%@%@%@%@", [hexStringCleared substringWithRange:NSMakeRange(0, 1)],[hexStringCleared substringWithRange:NSMakeRange(0, 1)],
[hexStringCleared substringWithRange:NSMakeRange(1, 1)],[hexStringCleared substringWithRange:NSMakeRange(1, 1)],
[hexStringCleared substringWithRange:NSMakeRange(2, 1)],[hexStringCleared substringWithRange:NSMakeRange(2, 1)]];
}
if(hexStringCleared.length == 6) {
hexStringCleared = [hexStringCleared stringByAppendingString:@"ff"];
}
if ([hexStringCleared isEqualToString:@"none"]) {
color=[UIColor clearColor];
}
if ([hexStringCleared isEqualToString:@"url(#SVGID_1_)"] || [hexStringCleared isEqualToString:@"url(#SVGID_2_)"] ||[hexStringCleared isEqualToString:@"url(#SVGID_3_)"] || [hexStringCleared isEqualToString:@"url(#SVGID_2_)"]) {
color=[UIColor clearColor];
}
NSString *red = [hexStringCleared substringWithRange:NSMakeRange(0, 2)];
NSString *green = [hexStringCleared substringWithRange:NSMakeRange(2, 2)];
NSString *blue = [hexStringCleared substringWithRange:NSMakeRange(4, 2)];
NSString *alpha = [hexStringCleared substringWithRange:NSMakeRange(6, 2)];
[[NSScanner scannerWithString:red] scanHexInt:&colorValueR];
[[NSScanner scannerWithString:green] scanHexInt:&colorValueG];
[[NSScanner scannerWithString:blue] scanHexInt:&colorValueB];
[[NSScanner scannerWithString:alpha] scanHexInt:&colorValueA];
color=[UIColor colorWithRed:((colorValueR)&0xFF)/255.0
green:((colorValueG)&0xFF)/255.0
blue:((colorValueB)&0xFF)/255.0
alpha:((colorValueA)&0xFF)/255.0];
return color;
}
【问题讨论】:
标签: ios xcode image svg uicolor