Я пишу интерпретатор в управляемом C ++ для, среди прочего, формата изображения PPM. Спецификация изображения позволяет использовать изображения размером до двух байтов на пиксель на канал или 48-битные на пиксель цветные изображения. Я пытаюсь прочитать этот формат и преобразовать его в растровое изображение .Net, но у меня возникают проблемы с его работой. Когда у меня есть 24-битные изображения на пиксель, я инициализирую их так:
bmp = gcnew Bitmap(width, height);
<for each pixel>
bmp->SetPixel(x, y, Drawing::Color::FromArgb(Convert::ToInt32(fileData[offset]),
Convert::ToInt32(fileData[offset + 1]),
Convert::ToInt32(fileData[offset + 2])));
offset += 3;
Для изображений размером 48 бит на пиксель я инициализировал bmp следующим образом:
bmp = gcnew Bitmap(widht, height, Imaging::PixelFormat::Format48bppRgb);
Однако, при попытке заполнить данные пикселей, я не могу указать какие-либо значения цвета, используя «Color :: FromArgb ()» со значениями больше 255 для R, G и B. Есть ли способ получить вокруг этого ограничения?