Ответ 1
Это просто случай деления вашего значения RGB, назовите его x
на 255:
Если x = 95
, то ваше значение 95/255 = 0.373
(до 3 d.p.)
Я пытаюсь вычислить некоторый RGB colors
(0 - 255)
для шкалы от 0
до 1
. Кто-нибудь знает онлайн-конвертер или существует математическая формула?
Предположим, что я хочу преобразовать 125 RGB с (от 0 до 255) в шкалу от 0 до 1.
Это просто случай деления вашего значения RGB, назовите его x
на 255:
Если x = 95
, то ваше значение 95/255 = 0.373
(до 3 d.p.)
a = x / 255
или
x = a * 255
где x
- значение RGB, а a
- ваш желаемый результат.
если вы хотите продолжить использование 0-255, можно создать функцию для этого в следующем примере.
function setFillColor2(...)
local object,r,b,g=...
object:setFillColor( r/255, b/255,g/255)
end
circle1 = display.newCircle(150,250, 50 )
setFillColor2(circle1,23,255,12)
Самый простой способ разделить на 255 по 0-1 или 256 на 0 - бит меньше 1. Последний иногда имеет свои преимущества. Разумеется, вам нужно делать деления в фиксированной или плавающей точке, а не в целочисленной арифметике.
Однако на самом деле реакция человека на значение канала rgb на 0-255 не является линейной, и ответ устройства не является. Часто вам нужно сделать гамма-коррекцию. Все это очень быстро связано с тем, что обычно не имеет особого значения для графики низкого уровня. Тем не менее, для высокопроизводительной графики вы часто хотите выйти из цветового пространства rgb в целом, а затем вам нужны функции нелинейного преобразования, чтобы окончательно смыть пиксели rgb до конечного изображения.