Логика позади 255 в Уиколоре - PullRequest
3 голосов
/ 30 сентября 2010

Мы обычно пишем 143.0 / 255.0 в UIColor setcolor RGB аргументах.Кто-нибудь может рассказать мне логику деления на 255,0.У меня есть некоторые знания, но я думаю, что они неполные.

Ответы [ 4 ]

8 голосов
/ 30 сентября 2010

Большинство Core Graphic API ожидают, что цветовые компоненты RGB будут в диапазоне от 0,0 до 1,0. Однако многие компьютерные цветовые палитры и устройства вывода Mac ожидают, что цветовые компоненты RGB будут представлены в 8-битных значениях, которые при выражении в виде целых чисел находятся в диапазоне от 0 до 255.

Если вы ищите цвет из таблицы с 8-битными значениями компонентов (например, веб-цвет #RRGGBB), то вам нужно масштабировать значения от 0 до 255 до диапазона от 0 до 1,0, что делается путем деления на 255.0f (в плавающей точке, так что вы не усекаете до 0).

0 голосов
/ 30 сентября 2010

UIColor не имеет методов для создания цветных объектов из диапазонов 0-255 rgb, к которым привыкли люди (в основном из веб-дизайна).

Самый простой инициализатор UIColor для цветов rgb использует диапазон цветов 0.0 - 1.0 длякаждый канал.

Итак, если у вас есть значение цвета на основе 0 - 255, деление его на 255.0 дает вам значение между 0.0 и 1.0:

255.0 / 255.0 = 1.0

0,0 / 255,0 = 0,0

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

0 голосов
/ 30 сентября 2010

Это потому, что большинство людей привыкли определять цвета по шкале от 0 до 255.Поскольку параметр требует аргументов для повторения цвета от 0 до 1, необходим /255.0.С таким же успехом можно указать что-то вроде 0,5, что означает 128,0 / 255,0.

Обратите внимание, что этот вопрос касается репрезентации цвета и не относится к iPhone.

0 голосов
/ 30 сентября 2010

Вы погружаетесь на 255,0 по 2 причинам

  1. Вам необходим десятичный знак, представляющий процент этого канала в диапазоне 0-1
  2. Если вы сделали 143/255будет целочисленным делением, которое даст целочисленный результат
...