如何将hight(int16)值恢复为rgb格式?

时间:2018-01-28 11:14:21

标签: c++ c++11 directx-11 heightmap

我有int16 *高度[width * height]数组,保持地形高度,我将它们直接加载为int16 *。

我需要将高度写入bmp文件。

我是如何将int16恢复为rgb格式的,因为它们首先来自bmp文件(rgb格式)?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要循环遍历数组并将每个int16转换为RGB值。如果terrain是您的数组

for (auto i=0; i<width * height; i++)
{
    auto Color = terrain[i];
    auto red = GetRValue16(color);
    auto green = GetGValue16(color);
    auto blue = GetBValue16(color);
}

关键点是你对三个函数GetXValue16的定义,因为RGB通常是整数的4字节表示,即int32。另请参阅Extracting rgb color components from integer value