Из ваших комментариев к более ранней версии этого ответа кажется, что каждое число в файле представляет один цвет и что это упакованные байты:
65280 (= 0xFF00) -> (0, 255, 0)
65535 (= 0xFFFF) -> (255, 255, 0)
Итак, вам нужен младший байт в первой (красной?) части тройки и следующий старший байт во второй (синей?) части тройки. Я предполагаю, что значения больше 65535 войдут в третий байт тройки.
Вы можете легко сделать это, используя битовую маску и операторы битового сдвига:
int r = n && 0xFF;
int g = (n >> 8) & 0xFF;
int b = (n >> 16) & 0xFF;
то есть сдвигать его вправо на 8 бит каждый раз и выбирать нижние 8 бит.
ПРИМЕЧАНИЕ. Вы также можете сделать это напрямую, используя Color.FromArgb(Int32), что избавляет вас от необходимости распаковывать. Но это будет работать только в том случае, если числа в вашем файле упакованы правильным образом. Они должны быть в формате AARRGGBB. Например, 255 (0x000000FF) = синий, 65280 (0x0000FF00) = зеленый, 16711680 (0x00FF0000) = красный. Я не уверен, что ваши числа в правильном порядке, поэтому я рассмотрел явную технику распаковки.
person
itowlson
schedule
13.01.2010