我试图将BMP图片加载到内存中并将RGB数组保存到文件中(我自己的格式带有纹理数据的3d模型)。我进行了编程,将OBJ及其纹理数据转换为m2d文件。但是当我在我的m2d装载机中实际加载文件时,它显示了图片上的绿色连续线条。
我在十六进制编辑器中打开了BMP文件,发现两个00s是罪魁祸首(多次发生)。 任何提示如何从RGB数组中取出这些00? 任何提示或提示将不胜感激。
答案 0 :(得分:1)
BMP中的每个水平行必须是4个字节长的倍数。
如果像素数据不占用4个字节的倍数,则在行的末尾添加0x00个字节。对于24-bpp图像,每行的字节数为(imageWidth*3 + 3) & ~3
。填充字节数为((imageWidth*3 + 3) & ~3) - (imageWidth*3)
。