Я уверен, что вы уже проверили http://en.wikipedia.org/wiki/BMP_file_format.
Имея эту информацию в руках, мы можем написать быстрый BMP с:
// setup header structs bmpfile_header and bmp_dib_v3_header before this (see wiki)
// * note for a windows bitmap you want a negative height if you're starting from the top *
// * otherwise the image data is expected to go from bottom to top *
FILE * fp = fopen ("file.bmp", "wb");
fwrite(bmpfile_header, sizeof(bmpfile_header), 1, fp);
fwrite(bmp_dib_v3_header, sizeof(bmp_dib_v3_header_t), 1, fp);
for (int i = 0; i < 200; i++) {
for (int j = 0; j < 200; j++) {
fwrite(&image[j][i][2], 1, 1, fp);
fwrite(&image[j][i][1], 1, 1, fp);
fwrite(&image[j][i][0], 1, 1, fp);
}
}
fclose(fp);
Если проблема с настройкой заголовков, сообщите нам.
Редактировать: Я забыл, BMP-файлы ожидают BGR вместо RGB, я обновил код (удивился, что никто не поймал его).