Я пытаюсь преобразовать 24-битные (8R, 8G, 8B) в 8-битные (RRRGGGBB) цвета.
Я понимаю основную концепцию масштабирования цветовых байтов и сложения их вместе (после сдвига). то есть, учитывая RGB (255 254 253), я бы взял 255/32 * 32 + 254/32 * 4 + 253/64, и это дало бы мне 111 111,11b (белый).
Это работает очень хорошо для изображений с большим количеством красного и зеленого, но как только начинает появляться синий цвет, все становится совсем не так. Синий цвет начинает выглядеть более бирюзовым или фиолетовым, чем раньше.
Я не пытаюсь делать дизеринг, а скорее пытаюсь найти лучшее сопоставление между RGB и 8 битами.
Я думал о преобразовании RGB в HSV, а затем в 8-битный, но я также не уверен, как преобразовать из HSV в 8-битный, байт H не соответствует RRRGGGBB. Даже если бы это было так, я не мог бы получить черно-белое изображение. Есть ли способ взвесить байты H, S, V (например, как я сделал с RGB), чтобы получить то, что я хочу? Или я должен просто найти лучшее отображение между RGB прямо в 8 бит?