我在内存中有一个数组,其中包含一个位图图像,具有已知的大小、深度、调色板等。我想使用这个数组来创建图像的 GraphicsMagick 表示,使我能够用它的 BMP 标头编写这个文件,并可以用其他软件查看它。
到目前为止,我有这样的东西(只是重要的几行——如果需要,我可以添加整个程序)。首先,变量:
FILE *fp_out;
ExceptionInfo exception;
Image *image;
ImageInfo *image_info;
char buffer[BUFFER_SIZE] = {0};
const int w = WIDTH, h = HEIGHT;
以及相关代码:
image = ConstituteImage(w, h, "RGB", CharPixel, buffer, &exception);
image_info = CloneImageInfo((ImageInfo *) NULL);
fp_out = fopen("image.bmp", "wb");
image_info->file = fp_out;
WriteImage(image_info, image);
image.bmp文件被创建,但 BMP 标头不存在,并且该位图的第一个字节包含如下内容:
id=ImageMagick version=1.0
class=DirectClass matte=False
columns=74 rows=75 depth=8
<binary data of my image>
我究竟做错了什么?我应该关注哪些文档?这是相当压倒性的。