Rewrite that doesn't alloc any memory.
const char * typeImageFromFileName (char * filename)
{
char header[64];
FILE *fp = fopen (filename, "rb");
if (fp){
fread (header, sizeof(char), sizeof(header), fp);
fclose (fp);
if (memcmp(header, "GIF87a", 6) == 0 ||
memcmp(header, "GIF89a", 6) == 0)
{
return "GIF";
}
if (memcmp(header, "BM", 2) == 0) // BMP file
{
return "BMP";
}
if (header[0] == 'P' && (header[1] == '3' || header[1] == '6'))
{
return "PPM";
}
if (header[0] == 'P' && (header[1] == '2' || header[1] == '5'))
{
return "PGM";
}
if (header[0] == 'P' && header[1] == '1' )
{
return "PBM";
}
if (memcmp(header, "\211PNG", 4) == 0)
{
return "PNG";
}
/*
if (memcmp(header, "\377\330\377", 3) == 0 &&
header[3] >= 0xc0 && header[3] <= 0xef)
*/
if (memcmp(header, "\377\330\377", 3) == 0)
{
return "JPEG";
}
if (memcmp(header, "II*", 3) == 0||memcmp(header, "MM*", 3) == 0 )
{
return "TIFF";
}
}
return "UNKNOWN";
}
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk