2016-11-04 11:00:04 +01:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include "utils.h"
|
|
|
|
#include "error.h"
|
|
|
|
|
2016-11-13 14:43:54 +01:00
|
|
|
image_type detect_image_type(FILE *pFile)
|
2016-11-04 11:00:04 +01:00
|
|
|
{
|
2017-02-25 10:17:33 +01:00
|
|
|
unsigned char buffer[4];
|
2016-11-04 11:00:04 +01:00
|
|
|
|
|
|
|
if (pFile == NULL) {
|
2017-02-21 23:15:31 +01:00
|
|
|
display_error(WARNING, 101);
|
2016-11-04 11:00:04 +01:00
|
|
|
return UNKN;
|
|
|
|
}
|
|
|
|
|
2017-02-25 10:17:33 +01:00
|
|
|
if (fread(buffer, 1, 4, pFile) < 4) {
|
2016-11-04 11:00:04 +01:00
|
|
|
return UNKN;
|
|
|
|
}
|
|
|
|
|
2017-02-25 10:17:33 +01:00
|
|
|
if (buffer[0] == 0xFF && buffer[1] == 0xFF) {
|
|
|
|
return CS_JPEG;
|
2016-11-04 11:00:04 +01:00
|
|
|
} else if (buffer[0] == 0x89 && buffer[1] == 0x50) {
|
2017-02-25 10:17:33 +01:00
|
|
|
return CS_PNG;
|
|
|
|
} else if ((buffer[0] == 0x49 && buffer[1] == 0x49 && buffer[2] == 0x2A && buffer[3] == 0x00)
|
|
|
|
|| (buffer[0] == 0x4D && buffer[1] == 0x4D && buffer[2] == 0x00 && buffer[3] == 0x2A)) {
|
|
|
|
return CS_TIFF;
|
2016-11-04 11:00:04 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return UNKN;
|
|
|
|
}
|