Jishnu Panja Ответов: 1

Как преобразовать 8 - битные оттенки серого в 36-битные


для преобразования 8-битных изображений в оттенках серого в 36 бит на пиксель в RGB. Как вы можете выполнить преобразование и убедиться, что новые изображения RGB визуально идентичны оригинальным изображениям в оттенках серого?

Что я уже пробовал:

ну, я думал о том, чтобы умножить канал 3-3-2 в 8-битном изображении на 4-4-6 соответственно. но я не уверен, что если я иду в правильном направлении

1 Ответов

Рейтинг:
1

phil.o

8-битный "цвет" имеет 256 возможных значений, от 0 до 255, для представления оттенков серого.
36-битный цвет имеет 12 бит на канал, предполагая отсутствие прозрачности.
Вы можете сопоставить 8-битное значение с его 12-битным эквивалентом и присвоить эти 12-битные значения всем каналам:

// This is pseudocode
int channelValue = grayscaleValue << 4; // This means channelValue = grayScaleValue * 16
the36bitsColour = new Colour(channelValue, channelValue, channelValue);


OriginalGriff

Как вы думаете, он понимает, что его изображение все еще будет монохромным? :Д

phil.o

Я задавался вопросом, просто ожидая какой-то основной обратной связи, чтобы определить очевидное, если это необходимо :)