私は、とりわけPPMイメージフォーマットのために、管理対象C++でインタプリタを書いています。イメージ仕様では、1チャネルにつき1ピクセルあたり最大2バイト、または1ピクセルあたり48ビットのカラーイメージを持つイメージが可能です。私はこのフォーマットを読んで、それを.Netビットマップに変換しようとしていますが、動作させるのに問題があります。私はピクセル画像あたり24ビットを持っているとき、私はそうのようにそれらを初期化し、次のよう48bppビットマップをRGBから初期化する方法は?
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);
しかし、記入しようとしたときに、ピクセルデータでは、R、G、およびBの値が255より大きい 'Color :: FromArgb()'を使用して色値を指定できません。この制限を回避する方法はありますか?