消除bmp数组中的两个零

时间:2015-01-04 03:23:04

标签: c++ bmp

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

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

1 个答案:

答案 0 :(得分:1)

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

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