位图最大尺寸

时间:2014-12-12 09:51:14

标签: c max bmp dimension

我最近使用C编写了一个程序,它使用一个非常简单的Spice Netlist(txt-file)作为输入,并根据网表绘制BMP-File(未压缩)。

绘制的每个组件的大小为100x51像素。因此输出BMP-File将始终具有51像素的固定高度,但长度是可变的。

我的问题:如何找出BMP文件的最大长度是多少?它似乎适用于超过32kx51的尺寸,在70kx51左右停止正常工作。

这是BMP Infoheader:

typedef struct
{
  uint32_t bi_Size_;
  int32_t bi_Width_;
  int32_t bi_Height_;
  uint16_t bi_Planes_;
  uint16_t bi_Bit_Count_;
  uint32_t bi_Compression_;
  uint32_t bi_Size_Image_;
  int32_t bi_X_Pels_Per_Meter_;
  int32_t bi_Y_Pels_Per_Meter_;
  uint32_t bi_Clr_Used_;
  uint32_t bi_Clr_Important_;
}__attribute__((__packed__)) BitMapInfoHeader;

1 个答案:

答案 0 :(得分:4)

取决于实际的BMP格式,在经典' BMP宽度和高度存储在16位字段中,因此您不能拥有大于65535x65535像素的图像。这后来扩展到32位值,但根据您用来生成BMP的库,它可能只支持" classic"格式或您可能明确要求创建更新的BMP变体...

参见例如:

http://en.wikipedia.org/wiki/BMP_file_format