`
jsntghf
  • 浏览: 2511477 次
  • 性别: 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;
}

  

分享到:
评论

相关推荐

    VB(十六进制)颜色代码与RGB互转工具

    这个“VB(十六进制)颜色代码与RGB互转工具”正是为了帮助开发者在这两种表示方式之间进行转换,提升编程效率。 RGB(Red, Green, Blue)是一种加色模型,通过红色、绿色和蓝色三种原色的不同强度组合来表示各种颜色...

    中文十六进制互转(VB源码)

    这个资源“中文十六进制互转”提供了VB源码,可以帮助开发者实现中文字符与十六进制之间的转换功能。下面将详细解释这一主题。 中文字符在计算机中通常以Unicode编码表示,每个字符占用两个字节。十六进制是一种...

    十六进制转十进制软件

    例如,一个字符可能首先被转换成它的ASCII码(十进制),然后再转换成对应的十六进制值。 总的来说,这个软件提供了多种功能,包括但不限于数值系统的转换、字符加密解密以及Base64编码解码。这些功能在软件开发、...

    十六进制字符串和数值相互转换

    十六进制字符串是用十六进制数字(0-9和A-F)组成的字符序列,而数值则是这些字符对应的十进制值。在C++编程中,进行十六进制字符串和数值之间的转换是常见的操作,特别是在处理内存数据、颜色代码或者文件偏移量等...

    颜色互转进制互转进制知识

    4. **二转十六**:二进制与十六进制之间的转换经常在处理低级数据和内存表示时进行。因为十六进制每位可以表示4位二进制,所以转换起来非常方便。例如,二进制的11010101转换为十六进制是D5。 5. **取点_**:在图像...

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

    通过以上知识点,我们可以了解到PHP中十六进制颜色与RGB颜色值互转的方法,同时也可以了解到这两种颜色表示法在Web开发中的应用以及它们之间的转换原理和步骤。这对于进行前端设计和开发的人员来说是必须掌握的基础...

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

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

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

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

    JACOB RGB 十六进制 互转

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

    易语言源码易语言单独进制互转模块.rar

    十六进制在编程中广泛使用,因为它能更紧凑地表示二进制数,特别是对于长的二进制字符串,如内存地址或颜色值。 易语言的“单独进制互转模块”可能包含以下功能: 1. 二进制到其他进制的转换:将二进制数转换为八...

    Ycbcr转RGB 以ppm图片打开、图片十六进制字符串互转

    总之,通过理解颜色空间转换、图片数据的16进制表示,以及Java中的图像处理技术,我们可以实现YCbCr到RGB的转换,以及图片与16进制字符串之间的相互转换。这在图像处理、数据存储和网络传输等领域有着广泛应用。

    jpg和hex互转工具

    "jpg和hex互转工具"是一个非常实用的小程序,它能够帮助我们便捷地在JPEG(jpg)图像文件和十六进制(hex)编码之间进行转换。这个工具的使用,对于开发者、数据分析师以及对二进制数据有需求的人员来说,是非常有...

    Java中Color和16进制字符串互相转换的方法

    Color 是一种颜色表示方式,通常用来描述图像或文本的颜色,而 16 进制字符串是一种字符串表示方式,用于描述颜色的 RGB 值。 在 Java 中,可以使用 toHexString 方法将整数类型转换为 16 进制字符串,而 parseInt ...

    HTML与RGB颜色互转软件

    HTML与RGB颜色互转软件是为了方便开发者快速、准确地进行颜色转换。软件中包含了一个颜色选取器,允许用户通过视觉方式选择颜色,然后自动提供对应的HTML颜色代码(通常是十六进制形式)以及RGB值。反之,如果已知...

    数据转换float,ASCLL,16进制互转器

    16进制,又称十六进制,是逢16进1的计数制,广泛应用于计算机科学中,因为它可以更直观地表示二进制数。16进制与二进制之间的转换非常直接,每四位二进制对应一位16进制。同时,16进制也常用来表示内存地址、颜色值...

    RgbToHex:将 RGB 颜色转换为十六进制的 Google Chrome 扩展程序

    这个名为"RgbToHex"的Google Chrome扩展程序专为此目的设计,它允许用户快速方便地将RGB颜色值转化为十六进制表示,从而简化网页设计和开发过程。 RGB颜色模式是一种基于红色(Red)、绿色(Green)和蓝色(Blue)...

    ASCII HEX 互转小工具

    ASCII HEX互转小工具是一种实用程序,主要用于在ASCII编码和十六进制(Hex)编码之间进行数据转换。在计算机科学和信息技术领域,这种转换是非常常见的,因为这两种编码方式都有其特定的应用场景和优势。 ASCII码,...

    数制间互转换

    在计算机科学中,数制是表示数值的一种方式。常见的数制包括二进制...例如,当你需要将用户输入的十六进制颜色代码转换为十进制RGB值,或者将存储在二进制文件中的数据解释为十进制数字时,这些函数都会派上用场。

    易语言单独进制互转模块-易语言

    4. **十六进制转二/八/十进制**:十六进制在编程中广泛用于表示颜色代码、内存地址等,因此需要将其转换为其他进制进行操作。 这个模块很可能包含一系列的函数或方法,例如`二进制转十进制`、`十进制转十六进制`等...

Global site tag (gtag.js) - Google Analytics