消除 bmp 数组中的两个零

Eliminating two zeros in a bmp array

我试图将 BMP 图片加载到内存中并将 RGB 数组保存到一个文件中(我自己的格式 3d 模型和纹理数据)。我编写了将 OBJ 及其纹理数据转换为 m2d 文件的编程。但是当我在我的 m2d 加载器中实际加载文件时,它在图片上显示了绿色连续线。

我在十六进制编辑器中打开 BMP 文件,发现两个 00 是罪魁祸首(多次出现)。 任何提示我应该如何从我的 RGB 阵列中取出这些 00? 任何提示或技巧将不胜感激。

BMP 中的每个水平行的长度必须是 4 字节的倍数。

如果像素数据不占用4字节的倍数,则在行尾添加0x00字节。对于 24-bpp 图像,每行的字节数为 (imageWidth*3 + 3) & ~3。填充字节数为((imageWidth*3 + 3) & ~3) - (imageWidth*3).