假设我有一些栅格数据要写入文件..现在我想将其写为 bmp 文件..
这个数据恰好不是 DWORD 对齐的,如果我理解正确的话,需要用足够的字节填充以到达下一个 DWORD..
但是,当我尝试用这段代码填充它时:
bmFile.Write(0x0, (4-(actualWidth%4)));
我得到一个错误..如果我尝试调试(我使用的是 MSVC++ 6.0),下一条语句指向 CFile::Write 中的一个 ASSERT,它断言第一个参数为 NULL..所以这失败了..
我应该如何填充它?我应该写出来吗:
bmFile.Write("0x0"(4-(actualWidth%4)));
相反?还是会按字面意思对待...?
谢谢..
最佳答案
也许试试:
bmFile.Write("\0\0\0\0", (4-(actualWidth%4)));
正如您所说,您的第一个示例是尝试写入空指针指向的数据。您的第二个示例将从具有 ASCII 值 0x30、0x78、0x30 的字节“0”、“x”、“0”写入,这可能不是您想要的。
关于c++ - 如何将填充字节添加到位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/419045/