Changeset 6566


Ignore:
Timestamp:
06/23/10 12:13:16 (9 years ago)
Author:
melissa
Message:

Tweaked pixel block detection to work with Slidebook 5.0.0.5 files.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.2/components/bio-formats/src/loci/formats/in/SlidebookReader.java

    r6495 r6566  
    283283            while (!found && in.getFilePointer() < in.length()) { 
    284284              for (int i=0; i<n-6; i++) { 
    285                 if ((buf[i] == 'h' && buf[i + 1] == 0 && 
    286                   buf[i+4] == 'I' && buf[i+5] == 'I') || 
    287                   (buf[i] == 0 && buf[i+1] == 'h' && 
    288                   buf[i+4] == 'M' && buf[i+5] == 'M')) 
     285                if (((buf[i] == 'h' || buf[i] == 'i') && buf[i + 1] == 0 && 
     286                  buf[i + 4] == 'I' && buf[i + 5] == 'I') || 
     287                  (buf[i] == 0 && (buf[i + 1] == 'h' || buf[i + 1] == 'i') && 
     288                  buf[i + 4] == 'M' && buf[i + 5] == 'M')) 
    289289                { 
    290290                  found = true; 
    291291                  in.seek(in.getFilePointer() - n + i - 20); 
     292                  if (buf[i] == 'i' || buf[i + 1] == 'i') { 
     293                    pixelOffsets.remove(pixelOffsets.size() - 1); 
     294                  } 
    292295                  break; 
    293296                } 
     
    302305 
    303306            if (in.getFilePointer() <= in.length()) { 
    304               pixelLengths.add(new Long(in.getFilePointer() - fp)); 
     307              if (pixelOffsets.size() > pixelLengths.size()) { 
     308                pixelLengths.add(new Long(in.getFilePointer() - fp)); 
     309              } 
    305310            } 
    306311            else pixelOffsets.remove(pixelOffsets.size() - 1); 
  • trunk/components/bio-formats/src/loci/formats/in/SlidebookReader.java

    r6495 r6566  
    283283            while (!found && in.getFilePointer() < in.length()) { 
    284284              for (int i=0; i<n-6; i++) { 
    285                 if ((buf[i] == 'h' && buf[i + 1] == 0 && 
    286                   buf[i+4] == 'I' && buf[i+5] == 'I') || 
    287                   (buf[i] == 0 && buf[i+1] == 'h' && 
    288                   buf[i+4] == 'M' && buf[i+5] == 'M')) 
     285                if (((buf[i] == 'h' || buf[i] == 'i') && buf[i + 1] == 0 && 
     286                  buf[i + 4] == 'I' && buf[i + 5] == 'I') || 
     287                  (buf[i] == 0 && (buf[i + 1] == 'h' || buf[i + 1] == 'i') && 
     288                  buf[i + 4] == 'M' && buf[i + 5] == 'M')) 
    289289                { 
    290290                  found = true; 
    291291                  in.seek(in.getFilePointer() - n + i - 20); 
     292                  if (buf[i] == 'i' || buf[i + 1] == 'i') { 
     293                    pixelOffsets.remove(pixelOffsets.size() - 1); 
     294                  } 
    292295                  break; 
    293296                } 
     
    302305 
    303306            if (in.getFilePointer() <= in.length()) { 
    304               pixelLengths.add(new Long(in.getFilePointer() - fp)); 
     307              if (pixelOffsets.size() > pixelLengths.size()) { 
     308                pixelLengths.add(new Long(in.getFilePointer() - fp)); 
     309              } 
    305310            } 
    306311            else pixelOffsets.remove(pixelOffsets.size() - 1); 
Note: See TracChangeset for help on using the changeset viewer.