C中的位图图像输出

时间:2011-02-18 15:51:24

标签: c image

我正在研究C中的小项目,有一次,我需要将一个包含数组内容的图片写入文件。这必须在某个时刻在嵌入式系统上运行,因此不能选择其他库。

到目前为止,我所使用的代码(在修改版本中)用于RGB,但8bit灰度无效。

到目前为止,这是代码的精简版:http://pastebin.com/U1UYAPuT

由于我强烈怀疑标题会以某种方式被破坏,我的问题归结为:8Bit灰度的BMP文件的正确标题是什么?

1 个答案:

答案 0 :(得分:2)

如果您放弃BMP并将图像写为PGM文件,那么您的代码将很多更简单。该格式更便于携带,并且易于在代码中使用。两种格式都是未压缩的,因此数据速率大致相同。您将失去的唯一能力是能够在Windows系统上本地查看图像 - 这是否很重要取决于您的要求。

以下是一些examples

修改

至少,如果您使用PGM 损坏的BMP编写图像,则可以使用imagemagick将PGM可靠地转换为工作BMP。然后使用二进制差异工具比较工作和损坏的BMP图像的标题,并在需要时修复您的BMP编写器。