diff --git a/iipsrv/src/IIPImage.cc b/iipsrv/src/IIPImage.cc index f8e556a..a18887e 100644 --- a/iipsrv/src/IIPImage.cc +++ b/iipsrv/src/IIPImage.cc @@ -40,6 +40,7 @@ #include #include +#include "openslide.h" using namespace std; @@ -121,16 +122,10 @@ void IIPImage::testImageType() throw(file_error) unsigned char lbigtiff[4] = {0x4D,0x4D,0x00,0x2B}; // Little Endian BigTIFF unsigned char bbigtiff[4] = {0x49,0x49,0x2B,0x00}; // Big Endian BigTIFF - - // Compare our header sequence to our magic byte signatures - if (suffix=="vtif" || - suffix=="svs" || - suffix=="ndpi" || - suffix=="mrxs" || - suffix=="vms" || - suffix=="scn" || - suffix=="bif") + const char * vendor = openslide_detect_vendor( path.c_str() ); + if ( vendor != NULL && strcmp(vendor, "generic-tiff") ) format = OPENSLIDE; + // Compare our header sequence to our magic byte signatures else if( memcmp( header, j2k, 10 ) == 0 ) format = JPEG2000; else if( memcmp( header, stdtiff, 3 ) == 0 || memcmp( header, lsbtiff, 4 ) == 0 || memcmp( header, msbtiff, 4 ) == 0