Используйте модуль 256 для каждого из значений R
, G
, B
.Это означает, что все значения оказываются в диапазоне [0-255], то есть один байт, например, -1 соответствует 255.
Затем для двух R значений R0
и R1
, их разница будет:
Rdiff = (R0 - R1) % 256
Позже вы можете сделать обратное:
R0 = (R1 + Rdiff) % 256
Расчет будет правильным, если все входы также находятся в диапазоне 0-255 (в данном случае это они).
Это некоторые примеры кодированных (Rdiff
) значений с такой логикой:
R0=50, R1=20 --> Rdiff=30
R0=10, R1=50 --> Rdiff=216
R0=0, R1=5 --> Rdiff=251
R0=33, R1=200 --> Rdiff=89