Десятичная запись RGBA в арифметическую запись

Мне нужно настроить приложение iOS, и в руководстве говорится:

Пожалуйста, не используйте значения RGBA в десятичном представлении от 0 до 255, а вместо этого используйте арифметическое представление от 0,0 до 1,0!

Например, цвет приложения по умолчанию #70C7C6 в руководстве преобразуется в (0,298, 0,792, 0,784, 1,000).

Как преобразовать другие цвета? Я никогда раньше не знал этой арифметической записи.


person Artemis    schedule 20.03.2017    source источник


Ответы (2)


Преобразуйте строковые шестнадцатеричные значения в целые числа, затем, чтобы получить арифметическую запись, разделите каждое значение на 255.

Например "С7" -> 199 -> 199/255. -> 0,78.

Последнее значение — это непрозрачность, которая звучит так, как будто в вашем случае всегда будет 1.

person Bemmu    schedule 20.03.2017
comment
Я думаю, это непрозрачность? - person user3528438; 20.03.2017

Компонент цвета — это число в указанном диапазоне, при работе с шестнадцатеричными или целыми значениями у вас (обычно) есть число в 0-255 (представленное 0x00-0xFF, если вы работаете в шестнадцатеричном формате). Но вы можете выразить одно и то же значение, нормализовав его в диапазоне 0,0-1,0, вы делаете это, разделив каждый компонент на максимально допустимое значение, например:

У вас есть 0xC7 в шестнадцатеричном формате, что равно 199 в десятичном виде, вы делите его на 255.0f и получаете 0.780f.

На практике UIColor уже предоставляет методы для получения нормализованных значений. , вам просто нужно преобразовать число из шестнадцатеричной записи, что можно сделать легко или с помощью простой библиотеки< /а>:

UIColor* color = [UIColor colorWithCSS:@"70c7c6"];
CGFloat r, g, b, a;
[color getRed:&r green:&g blue:&b alpha:&a]
person Jack    schedule 20.03.2017