2010-11-24 28 views
25

Je veux faire une conversion de hexadécimal en RGB, mais le trait hexadécimal avec une chaîne comme #FFFFFF. Comment puis je faire ça?comment convertir hexadécimal en RGB

+4

quelle langue? – st0le

+0

Pouvez-vous spécifier la langue? –

+0

je suis désolé, je l'ai édité .. il est dans l'objectif C –

Répondre

81

Je viens de développer ma catégorie UIColor pour vous.
utiliser comme UIColor *green = [UIColor colorWithHexString:@"#00FF00"];

// 
// UIColor_Categories.h 
// 
// Created by Matthias Bauch on 24.11.10. 
// Copyright 2010 Matthias Bauch. All rights reserved. 
// 

#import <Foundation/Foundation.h> 


@interface UIColor(MBCategory) 

+ (UIColor *)colorWithHex:(UInt32)col; 
+ (UIColor *)colorWithHexString:(NSString *)str; 

@end 

// 
// UIColor_Categories.m 
// 
// Created by Matthias Bauch on 24.11.10. 
// Copyright 2010 Matthias Bauch. All rights reserved. 
// 

#import "UIColor_Categories.h" 

@implementation UIColor(MBCategory) 

// takes @"#123456" 
+ (UIColor *)colorWithHexString:(NSString *)str { 
    const char *cStr = [str cStringUsingEncoding:NSASCIIStringEncoding]; 
    long x = strtol(cStr+1, NULL, 16); 
    return [UIColor colorWithHex:x]; 
} 

// takes 0x123456 
+ (UIColor *)colorWithHex:(UInt32)col { 
    unsigned char r, g, b; 
    b = col & 0xFF; 
    g = (col >> 8) & 0xFF; 
    r = (col >> 16) & 0xFF; 
    return [UIColor colorWithRed:(float)r/255.0f green:(float)g/255.0f blue:(float)b/255.0f alpha:1]; 
} 

@end 
+0

Je sais que c'est vieux maintenant, mais je crois que vous devez #importer à réel être en mesure de faire UIColor (MBCategory) sinon vous obtenez une erreur disant incapable de trouver @interface UIColor. Cela pourrait juste être une mise à jour depuis que cela a été écrit, mais cela ne fonctionne pas sans l'importation. – Popeye

+0

Cela devrait fonctionner dans un projet iOS standard créé par Xcode. L'UIKit entier est importé dans l'en-tête précompilé (ProjectName-Prefix.pch). –

24
//In your header file 

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 

//usage 
UIColor *color = UIColorFromRGB(0x000000) 
//you can also use it inline 
[text.textField setTextColor:UIColorFromRGB(0xcccccc)]; 
+2

Je pense que c'est quelque chose de génial :) –

3

Ceci est peut vous aider à

UIColor *organizationColor = [self colorWithHexString:@"#ababab" alpha:1]; 


- (UIColor *)colorWithHexString:(NSString *)str_HEX alpha:(CGFloat)alpha_range{ 
    int red = 0; 
    int green = 0; 
    int blue = 0; 
    sscanf([str_HEX UTF8String], "#%02X%02X%02X", &red, &green, &blue); 
    return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha_range]; 
}