+
+ if (GetBitsAllocated()==16) { // try to deal with RLE 16 Bits
+
+ im = (char *)image_buffer;
+ // need to make 16 Bits Pixels from Low Byte and Hight Byte 'Planes'
+
+ int l = GetXSize()*GetYSize();
+ int nbFrames = GetZSize();
+
+ char * newDest = (char*) malloc(l*nbFrames*2);
+ char *x = newDest;
+ char * a = (char *)image_buffer;
+ char * b = a + l;
+
+ for (int i=0;i<nbFrames;i++) {
+ for (int j=0;j<l; j++) {
+ *(x++) = *(a++);
+ *(x++) = *(b++);
+ }
+ }
+ memmove(image_buffer,newDest,lgrTotale);
+ free(newDest);
+ }
+