我正在将MiniLibX用于Raytracer学校项目。我想拍摄我的Raytracer快照并将其存储到“ .bmp”位图文件中。
我正在跟踪网上找到的非常有用的指南:https://codepen.io/Sepp/pen/MXBrzy?editors=1100
除偏移量设置外,其他一切似乎都可以正常工作。
如果我在标题中将其设置为0,则图像的前18个像素是随机的,并且我从左侧的右侧得到一条条纹(宽18 pxl)。如果我将偏移量设置为54个字节(应偏移的正确字节数),则文件已损坏(没有软件会打开它)。
这是一个示例(请参见左侧的阴影): http://ricardolovelace.com/creating-bitmap-images-with-c-on-windows.html
因此,我找到了另一个资源来帮助我打印记录在文件中的实际标题并检查错误(请参见raytracer example with unwanted strip on the left)。我发现,如果将偏移量设置为1,则位图记录的偏移量为65536,当我将其设置为54时,它将得到65536 * 54。
我迷失了可能极大地改变了我写入到如此巨大值的偏移量的情况,并且想知道不同软件如何读取位图。我已经阅读了很多有关堆栈溢出和整个网络的主题,但是找不到这个确切的问题。这篇帖子与此类似,但是问题的根源对我来说似乎不一样(我与我的问题无关):https://gist.github.com/j-marjanovic/5319384ad6606d6fd6d6
我唯一的猜测是它可能与颜色表有关,但我不确定何时需要它。
无论如何,如果您想看一下我的代码,我会上传它,并感谢您在此问题上的潜在帮助!