I have a problem when loading a gflBitmap (from a standard unsigned char * buffer) using the gflLoadBitmapFromMemory function. The function call returns the error code 6 ("Unknown format") only under linux, under windows there is no problem ... I post the tested code below :
returns "Unknown format". Can you please give me some information about this problem ??#include <iostream>
#include <libgfl.h>
void PgmRead(int & sx, int & sy, unsigned char ** buffer, const char * filename){
FILE * fic = fopen(filename, "rb");
fscanf(fic, "P5\n");
fscanf(fic, "%d %d\n", &sx, &sy);
fscanf(fic, "255\n");
(*buffer) = new unsigned char[sx*sy];
fread((*buffer), sizeof(unsigned char), sx*sy, fic);
fclose(fic);
}
int main(int argc, char ** argv){
gflLibraryInit();
unsigned char * image = 0;
int sx, sy;
PgmRead(sx, sy, &image, "test.pgm");
GFL_LOAD_PARAMS load_params;
gflGetDefaultLoadParams(&load_params);
load_params.FormatIndex = gflGetFormatIndexByName("raw");
load_params.Origin = GFL_TOP_LEFT;
load_params.Width = sx;
load_params.Height = sy;
load_params.Offset = 0;
load_params.ChannelOrder = GFL_CORDER_INTERLEAVED;
load_params.ChannelType = GFL_CTYPE_GREYSCALE;
GFL_BITMAP * bitmap = 0;
bitmap = gflAllockBitmap(GFL_GREY, sx, sy, 1, NULL);
std::cout << gflGetErrorString(gflLoadBitmapFromMemory(image, sx*sy, &bitmap, &load_params, NULL)) << std::endl;
gflLibraryExit();
return 0;
}