我想在1D数组中将每个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
即可。