我想将每个 3D 坐标的 aFloat 的字节值存储在一维数组中的 pixelsArray 中:
float aFloat = 1.0;
unsigned char* pixelsArray = new unsigned char[HEIGHT*WIDTH*3];
for (int i = 0; i < HEIGHT; i++)
{
for (int j = 0; j < WIDTH; j++)
{
for (int k = 0; k < 3; k++)
{
pixelsArray[?] = aFloat;
}
}
}
什么会进入 ??如果我没记错的话,我认为它还需要在索引中的某处包含 + sizeof(float)
。
最佳答案
您的内线需要是:
pixelsArray[(i * WIDTH + j) * 3 + k] = (unsigned char)(255.0 * aFloat);
这应该给你一个全白的图像。
确保您的目标确实是每个像素三个字节而不是四个(alpha channel 或填充);如果是四,则只需将上面的 3
更改为 4
。
关于C++ 在 1D 数组中表示 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3902648/