Changeset 4025


Ignore:
Timestamp:
05/08/08 10:30:12 (12 years ago)
Author:
melissa
Message:

Fixed dimension order and swapped Z/T sizes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/in/LeicaReader.java

    r4024 r4025  
    524524        s.order(core.littleEndian[0]); 
    525525 
    526         core.sizeZ[i] = s.readInt(); 
     526        core.imageCount[i] = s.readInt(); 
    527527        core.sizeX[i] = s.readInt(); 
    528528        core.sizeY[i] = s.readInt(); 
    529529 
    530         addMeta("Number of images", new Integer(core.sizeZ[i])); 
     530        addMeta("Number of images", new Integer(core.imageCount[i])); 
    531531        addMeta("Image width", new Integer(core.sizeX[i])); 
    532532        addMeta("Image height", new Integer(core.sizeY[i])); 
     
    587587              bpp + ")"); 
    588588        } 
     589 
     590        core.currentOrder[i] = "XY"; 
    589591 
    590592        resolution = stream.readInt(); 
     
    687689          } 
    688690 
     691          int size = stream.readInt(); 
     692 
     693          if (dimType.equals("x")) core.sizeX[i] = size; 
     694          else if (dimType.equals("y")) core.sizeY[i] = size; 
     695          else if (dimType.indexOf("z") != -1) { 
     696            core.sizeZ[i] = size; 
     697            if (core.currentOrder[i].indexOf("Z") == -1) { 
     698              core.currentOrder[i] += "Z"; 
     699            } 
     700          } 
     701          else if (dimType.equals("channel")) { 
     702            core.sizeC[i] = size; 
     703            if (core.currentOrder[i].indexOf("C") == -1) { 
     704              core.currentOrder[i] += "C"; 
     705            } 
     706          } 
     707          else { 
     708            core.sizeT[i] = size; 
     709            if (core.currentOrder[i].indexOf("T") == -1) { 
     710              core.currentOrder[i] += "T"; 
     711            } 
     712          } 
     713 
    689714          addMeta("Dim" + j + " type", dimType); 
    690           addMeta("Dim" + j + " size", new Integer(stream.readInt())); 
     715          addMeta("Dim" + j + " size", new Integer(size)); 
    691716          addMeta("Dim" + j + " distance between sub-dimensions", 
    692717            new Integer(stream.readInt())); 
     
    812837        addMeta("ID of colored dimension", new Integer(stream.readInt())); 
    813838 
    814         //if (nChannels > 4) nChannels = 3; 
    815         core.sizeC[i] = nChannels; 
    816  
    817839        for (int j=0; j<nChannels; j++) { 
    818840          int value = stream.readInt(); 
     
    847869    Arrays.fill(core.interleaved, false); 
    848870 
    849     // sizeC is null here if the file we opened was a TIFF. 
    850     // However, the sizeC field will be adjusted anyway by 
    851     // a later call to initMetadata. 
    852     if (core.sizeC != null) { 
    853       int oldSeries = getSeries(); 
    854       for (int i=0; i<core.sizeC.length; i++) { 
    855         setSeries(i); 
    856         if (core.sizeC[i] == 0) core.sizeC[i] = 1; 
    857         core.sizeZ[i] /= core.sizeC[i]; 
    858       } 
    859       setSeries(oldSeries); 
    860     } 
    861  
    862871    // the metadata store we're working with 
    863872    MetadataStore store = 
     
    865874 
    866875    for (int i=0; i<numSeries; i++) { 
     876      if (core.sizeZ[i] == 0) core.sizeZ[i] = 1; 
     877      if (core.sizeT[i] == 0) core.sizeT[i] = 1; 
    867878      if (core.sizeC[i] == 0) core.sizeC[i] = 1; 
    868       core.sizeT[i]++; 
    869       if (core.sizeZ[i] == 0) core.sizeZ[i] = 1; 
     879      if (core.imageCount[i] == 0) core.imageCount[i] = 1; 
     880      if (core.imageCount[i] == 1 && core.sizeZ[i] > 1) { 
     881        core.sizeZ[i] = 1; 
     882      } 
     883      if (core.imageCount[i] == 1 && core.sizeT[i] > 1) { 
     884        core.sizeT[i] = 1; 
     885      } 
    870886      tiff[i][0].setId((String) files[i].get(0)); 
    871887      core.sizeX[i] = tiff[i][0].getSizeX(); 
     
    874890      core.indexed[i] = tiff[i][0].isIndexed(); 
    875891      core.sizeC[i] *= tiff[i][0].getSizeC(); 
    876       core.currentOrder[i] = core.rgb[i] ? "XYCZT" : "XYZTC"; 
     892 
     893      if (core.currentOrder[i].indexOf("C") == -1) { 
     894        core.currentOrder[i] += "C"; 
     895      } 
     896      if (core.currentOrder[i].indexOf("Z") == -1) { 
     897        core.currentOrder[i] += "Z"; 
     898      } 
     899      if (core.currentOrder[i].indexOf("T") == -1) { 
     900        core.currentOrder[i] += "T"; 
     901      } 
    877902 
    878903      if (i < timestamps.length && timestamps[i] != null) { 
     
    893918    } 
    894919    MetadataTools.populatePixels(store, this); 
    895  
    896     for (int i=0; i<core.sizeC.length; i++) { 
    897       for (int j=0; j<core.sizeC[i]; j++) { 
    898         // CTR CHECK 
    899 //        store.setLogicalChannel(j, null, null, null, null, null, null, null, 
    900 //          null, null, null, null, null, null, null, null, null, null, null, 
    901 //          null, null, null, null, null, new Integer(i)); 
    902         // TODO: get channel min/max from metadata 
    903 //        store.setChannelGlobalMinMax(j, getChannelGlobalMinimum(currentId, j), 
    904 //          getChannelGlobalMaximum(currentId, j), ii); 
    905       } 
    906     } 
    907920  } 
    908921 
Note: See TracChangeset for help on using the changeset viewer.