Changeset 1867


Ignore:
Timestamp:
11/29/06 08:00:29 (13 years ago)
Author:
melissa
Message:
  • Fixed Perkin-Elmer dimension ordering
  • Tweaked LeicaReader to handle case when TIFF files have been renamed.
  • Added hack to TiffTools that handles new Leica TCS data.
Location:
trunk/loci/formats
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/TiffTools.java

    r1806 r1867  
    11441144    if (planarConfig == 2) numStrips *= samplesPerPixel; 
    11451145 
    1146     if (stripOffsets.length != numStrips) { 
     1146    if (stripOffsets.length < numStrips) { 
    11471147      throw new FormatException("StripOffsets length (" + 
    11481148        stripOffsets.length + ") does not match expected " + 
     
    11501150    } 
    11511151 
    1152     if (stripByteCounts.length != numStrips) { 
     1152    if (stripByteCounts.length < numStrips) { 
    11531153      throw new FormatException("StripByteCounts length (" + 
    11541154        stripByteCounts.length + ") does not match expected " + 
  • trunk/loci/formats/in/LeicaReader.java

    r1812 r1867  
    360360        byte[] tempData = (byte[]) headerIFDs[i].get(new Integer(15)); 
    361361        int tempImages = DataTools.bytesToInt(tempData, 0, 4, littleEndian); 
    362         String dirPrefix = new File(getMappedId(id)).getParent(); 
     362        String dirPrefix =  
     363          new File(getMappedId(id)).getAbsoluteFile().getParent(); 
    363364        dirPrefix = dirPrefix == null ? "" : (dirPrefix + File.separator); 
    364365        for (int j=0; j<tempImages; j++) { 
     
    366367          f.add(dirPrefix + DataTools.stripString( 
    367368            new String(tempData, 20 + 2*(j*nameLength), 2*nameLength))); 
     369          // test to make sure the path is valid 
     370          File test = new File((String) f.get(f.size() - 1)); 
     371          if (!test.exists()) { 
     372            // TIFF files were renamed 
     373 
     374            File[] dirListing = (new File(dirPrefix)).listFiles(); 
     375             
     376            int pos = 0;   
     377            int maxChars = 0; 
     378            for (int k=0; k<dirListing.length; k++) { 
     379              int pt = 0; 
     380              int chars = 0; 
     381              String path = dirListing[k].getAbsolutePath(); 
     382              if (path.toLowerCase().endsWith("tif") ||  
     383                path.toLowerCase().endsWith("tiff"))   
     384              { 
     385                while (path.charAt(pt) == test.getAbsolutePath().charAt(pt)) { 
     386                  pt++; 
     387                  chars++; 
     388                } 
     389                int newPt = path.length() - 1; 
     390                int oldPt = test.getAbsolutePath().length() - 1; 
     391                while (path.charAt(newPt) ==  
     392                  test.getAbsolutePath().charAt(oldPt))  
     393                { 
     394                  newPt--; 
     395                  oldPt--; 
     396                  chars++; 
     397                } 
     398                if (chars > maxChars) { 
     399                  maxChars = chars; 
     400                  pos = k; 
     401                } 
     402              } 
     403            } 
     404 
     405            f.set(f.size() - 1, dirListing[pos].getAbsolutePath()); 
     406          } 
    368407        } 
    369408 
  • trunk/loci/formats/in/PerkinElmerReader.java

    r1812 r1867  
    505505    if (sizeT[0] <= 0) sizeT[0] = 1; 
    506506 
    507     if (sizeZ[0] < sizeT[0]) currentOrder[0] += "ZT"; 
    508     else currentOrder[0] += "TZ"; 
     507    Object o = metadata.get("Z slice space"); 
     508    if (o != null) { 
     509      float spacing = Float.parseFloat(o.toString()); 
     510      if (spacing <= 1f) currentOrder[0] += "TZ"; 
     511      else currentOrder[0] += "ZT"; 
     512    } 
     513    else currentOrder[0] += "ZT"; // doesn't matter, since Z = T = 1  
    509514 
    510515    // Populate metadata store 
Note: See TracChangeset for help on using the changeset viewer.