`
jsntghf
  • 浏览: 2475707 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

颜色与十六进制值的互转

    博客分类:
  • iOS
阅读更多
//字符串转颜色
- (UIColor *) colorWithHexString: (NSString *) stringToConvert {
    NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
    
    if ([cString length] < 6)
        return [UIColor whiteColor];
    if ([cString hasPrefix:@"#"])
        cString = [cString substringFromIndex:1];
    if ([cString length] != 6)
        return [UIColor whiteColor];
    
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [cString substringWithRange:range];
    
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    
    range.location = 4;
    NSString *bString = [cString substringWithRange:range];
    
    unsigned int r, g, b;
    [[NSScanner scannerWithString:rString] scanHexInt:&r];
    [[NSScanner scannerWithString:gString] scanHexInt:&g];
    [[NSScanner scannerWithString:bString] scanHexInt:&b];
    
    return [UIColor colorWithRed:((float) r / 255.0f)
                           green:((float) g / 255.0f)
                            blue:((float) b / 255.0f)
                           alpha:1.0f];
}

//颜色转字符串
- (NSMutableArray *) changeUIColorToRGB:(UIColor *)color {
    const CGFloat *cs = CGColorGetComponents(color.CGColor);
    
    NSString *r = [NSString stringWithFormat:@"%@", [self ToHex:cs[0] * 255]];
    NSString *g = [NSString stringWithFormat:@"%@", [self ToHex:cs[1] * 255]];
    NSString *b = [NSString stringWithFormat:@"%@", [self ToHex:cs[2] * 255]];
    return [NSString stringWithFormat:@"#%@%@%@", r, g, b];
}

//十进制转十六进制
- (NSString *)ToHex:(int)tmpid {
    NSString *endtmp = @"";
    NSString *nLetterValue;
    NSString *nStrat;
    int ttmpig = tmpid % 16;
    int tmp = tmpid / 16;
    switch (ttmpig) {
        case 10:
            nLetterValue = @"A"; break;
        case 11:
            nLetterValue = @"B"; break;
        case 12:
            nLetterValue = @"C"; break;
        case 13:
            nLetterValue = @"D"; break;
        case 14:
            nLetterValue = @"E"; break;
        case 15:
            nLetterValue = @"F"; break;
        default:nLetterValue = [[NSString alloc] initWithFormat:@"%i", ttmpig];
    }
    switch (tmp) {
        case 10:
            nStrat = @"A"; break;
        case 11:
            nStrat = @"B"; break;
        case 12:
            nStrat = @"C"; break;
        case 13:
            nStrat = @"D"; break;
        case 14:
            nStrat = @"E"; break;
        case 15:
            nStrat = @"F"; break;
        default:nStrat = [[NSString alloc] initWithFormat:@"%i", tmp];
    }
    endtmp = [[NSString alloc] initWithFormat:@"%@%@", nStrat, nLetterValue];
    return endtmp;
}

  

分享到:
评论

相关推荐

    RGB转HEX(十六进制)小工具

    一个用Java写的颜色转换器,可用于将RGB值与HEX(十六进制)互转。

    rgb2hex 和 hex2rgb:在 rgb 和十六进制值之间转换颜色-matlab开发

    只需在十六进制颜色值和 rgb 颜色值之间进行转换。 这两个函数可以将数组作为输入处理。 默认 rgb 值从 0 到 1 缩放以匹配 Matlab 的语法。 但是,如果您想使用从 0 到 255 缩放的 RGB 值,那也可以。 句法: rgb = ...

    PHP中十六进制颜色与RGB颜色值互转的方法

    16进制的颜色值通常表示为#FFFFFF,当前也有缩减为#FFF,前提是两位两位必需相同,例如#FEFEFE这种,就不能进行缩减。而RGB的颜色格式是由3组0~255的数字构成,分别代表红(Red)、绿(Green)、蓝(Blue)的色值。 ...

    JACOB RGB 十六进制 互转

    使用JACOB的Dispatch.put(ofont, "Color", ColorUtil.exChangeRgbColor(color));语句发现RGB在WORD显示的时候R和B的值互换了,所有使用这个工具类进行互换值,达到颜色统一

    颜色数值转换工具类.html

    颜色数值类型转换工具,将十进制的颜色数值转换为RGB格式,再将RGB格式转换为十六进制颜色值,并支持互转。

    颜色查看器

    屏幕取色,RGB与十六进制互转,查看alpha通道值,并付带源代码。

    易语言屏幕抓色工具

    易语言屏幕抓色工具源码,屏幕抓色工具,抓色完毕,到十六进制文本,取特殊目录,超级截图,鼠标移动,RGB和颜色值互转_十六进制,查看字节集2,十到十六,去除首部零,十六到十,快照增强版,载入位图,载入数据,载入数据2,创建...

    1345个易语言模块

    十六进制 转十进制模块 .ec 十进制转化为十六进制5.ec 压缩加密文件夹.ec 压缩文件夹.ec 双功能自动编号模块.ec 发 送消息_全选插入.ec 取CPU特征字.ec 取DOS执行结果.ec 取DOS执行结果模块 1.0.ec 取Dos执行结 果...

    易语言辅助模块

    32、#存档文件 通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数,默认为搜寻所有文件属性 .参数 文件数组, 文本型, 参考 数组, 装载文件名的数组变量,请用循环取出 .子程序 枚举子目录, 整数型,...

    700个批处理打包下载.rar

    十进制转十六进制.cmd 去掉字符串不同部位的空格.cmd 去掉字符串头所有的0.cmd 去掉数值中可能存在的负号.cmd 去最大最小值后求剩余数组平均值.cmd 反序列出文本的每行内容.cmd 反序显示输入内容.cmd 取得硬盘数.bat...

    大量批处理实用程序例程

    十进制转十六进制.cmd 字母大小写转换.cmd 把秒转换为天小时分秒的格式.cmd 阿拉伯与罗马数字互转程序.cmd 阿拉伯数字转为罗马数字.cmd C盘个人资料转移器 IE修复.cmd Windows安全优化小助手.cmd XP安全设置补丁...

    1350多个精品易语言模块

    十六进制 转十进制模块 .ec 十进制转化为十六进制5.ec 压缩加密文件夹.ec 压缩文件夹.ec 双功能自动编号模块.ec 发 送消息_全选插入.ec 取CPU特征字.ec 取DOS执行结果.ec 取DOS执行结果模块 1.0.ec 取Dos执行结 果...

    易语言模块大全(共775个模块)

    十六进制文本转十进制文本(1.0).zip 十进制转为十六进制1.1(1.0).zip 双功能自动编号模块(1.0).zip 四则混合运算(1.1).zip 世恒软件-登陆确认(1.0).zip 属性列静态控件(1.0).zip 搜索邮件(1.0).zip 数字的单双判断...

    易语言700模块打包

    进程名&窗口句柄互取(2.0).zip 结束进程1.0(1.0).zip 记录集读写操作(1.0).zip 进度下载(1.0).zip 进程信息获取模块(1.0).zip 进程模块(1.0).zip 扩展按钮控件(1.0).zip kernel模块(1.0).zip 控件大小调整...

Global site tag (gtag.js) - Google Analytics