Преобразование цветов - PullRequest
0 голосов
/ 29 июня 2011

Я безуспешно искал, как преобразовать некоторый цветовой код в обычный RGB (255,255,255). У меня есть такой номер, как

5953244  Yellow
12868826 Pink
12356730 Pale Blue
5758835  Green

Я действительно не понимаю, как взять эти числа и преобразовать их в обычный RGB или что это за тип RGB.

Ответы [ 4 ]

2 голосов
/ 30 июля 2011

Просто включите эту строку в ваш заголовочный файл:

#define RGB(r, g, b)  [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1];

Затем вы можете вызвать его из любого места, например:

UIColor *myBrightBlueColour = RGB(0,186,255);

Надеюсь, что поможет.

1 голос
/ 20 февраля 2014

см. Эту ссылку для преобразования гекскода в UIcolor: http://www.touch -code-magazine.com / web-color-to-uicolor-convertor /

1 голос
/ 29 июня 2011

Значение int достаточно велико, чтобы содержать значение ARGB или любой порядок (RGBA, BGR), а само значение int не так важно, как отдельные байты, которые оно содержит.Разные цветовые пространства требуют разных побитовых операций, так как канал будет расположен в разных байтах.Ниже приведен пример, который будет работать для RGB и ARGB.

#define R(rgb) ((rgb) >> 16 & 0xFF)
#define G(rgb) ((rgb) >> 8 & 0xFF)
#define B(rgb) ((rgb) & 0xFF)

int main(int argc, char *argv[])
{
    int pale_blue = 5953244;
    printf("\nR: 0x%02X G: 0x%02X B: 0x%02X\nR: %03d G: %03d B: %03d", 
        R(pale_blue), G(pale_blue), B(pale_blue), 
        R(pale_blue), G(pale_blue), B(pale_blue));
}

Выход:

R: 0x5A G: 0xD6 B: 0xDCR: 090 G: 214 B: 220

1 голос
/ 29 июня 2011

Это зависит от того, какие это цветовые коды, если они являются HTML-кодами цвета, которые обычно отображаются в шестнадцатеричном виде, то вы можете сделать что-то вроде этого

red = (c>>16)&0xff;
green = (c>>8)&0xff;
blue = c&0xff;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...