#define RGB 3
#define GRAY 1
+int _kds_s2000w_image_converter_is_pnm(blobdata* image)
+{
+ if (image->size < 2)
+ return 0;
+
+ char* image_data = (char*) image->data;
+ if (strncmp(image_data, "P6", 2) == 0)
+ return 1;
+
+ return strncmp(image_data, "P4", 2) == 0;
+}
+
+int _kds_s2000w_image_converter_is_jpeg(blobdata* image)
+{
+ if (image->size < 2)
+ return 0;
+
+ const char first_byte = 0xff;
+ const char second_byte = 0xd8;
+
+ char* image_data = (char*) image->data;
+ return image_data[0] == first_byte && image_data[1] == second_byte;
+}
+
int _kds_s2000w_image_converter_find_char(blobdata* image, int start, const char cfind)
{
char* image_data = (char*) image->data;
if (image->size < 2)
return;
- if (strncmp(image->data, "P6", 2) == 0
- || strncmp (image->data, "P4", 2) == 0) {
+ if (_kds_s2000w_image_converter_is_pnm(image)) {
_kds_s2000w_image_converter_pnm_metadata(image, mdata);
return;
}
- _kds_s2000w_image_converter_jpeg_metadata(image, mdata);
+ if (_kds_s2000w_image_converter_is_jpeg(image)) {
+ _kds_s2000w_image_converter_jpeg_metadata(image, mdata);
+ return;
+ }
return;
}