Changeset 3921


Ignore:
Timestamp:
04/15/08 09:47:18 (12 years ago)
Author:
melissa
Message:

Fixed series splitting again.

File:
1 edited

Legend:

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

    r3911 r3921  
    509509 
    510510      if (offsets[0].length != core.imageCount[0]) { 
    511         long[][] tmpOffsets = offsets; 
    512         offsets = new long[1][core.imageCount[0]]; 
    513         int next = 0; 
    514         for (int i=0; i<tmpOffsets.length; i++) { 
    515           for (int j=0; j<tmpOffsets[i].length; j++) { 
    516             if (next < offsets[0].length) { 
    517               offsets[0][next++] = tmpOffsets[i][j]; 
    518             } 
    519           } 
    520         } 
    521511        int x = core.sizeX[0]; 
    522512        int y = core.sizeY[0]; 
    523         int z = core.sizeZ[0]; 
    524513        int c = core.sizeC[0]; 
    525         int t = core.sizeT[0]; 
    526         int count = core.imageCount[0]; 
    527         int type = core.pixelType[0]; 
    528         core = new CoreMetadata(1); 
    529         core.sizeX[0] = x; 
    530         core.sizeY[0] = y; 
    531         core.sizeZ[0] = z; 
    532         core.sizeC[0] = c; 
    533         core.sizeT[0] = t; 
    534         core.imageCount[0] = count; 
    535         core.pixelType[0] = type; 
    536       } 
    537  
    538       Arrays.fill(core.sizeX, core.sizeX[0]); 
    539       Arrays.fill(core.sizeY, core.sizeY[0]); 
    540       Arrays.fill(core.sizeC, core.sizeC[0] == 0 ? 1 : core.sizeC[0]); 
    541       Arrays.fill(core.sizeZ, core.sizeZ[0] == 0 ? 1 : core.sizeZ[0]); 
    542       Arrays.fill(core.sizeT, core.sizeT[0] == 0 ? 1 : core.sizeT[0]); 
    543       Arrays.fill(core.imageCount, core.imageCount[0]); 
    544       Arrays.fill(core.pixelType, core.pixelType[0]); 
    545  
     514        int pixelType = core.pixelType[0]; 
     515        boolean rgb = core.rgb[0]; 
     516        core = new CoreMetadata(offsets.length); 
     517        Arrays.fill(core.sizeX, x); 
     518        Arrays.fill(core.sizeY, y); 
     519        Arrays.fill(core.sizeC, c); 
     520        Arrays.fill(core.pixelType, pixelType); 
     521        Arrays.fill(core.rgb, rgb); 
     522        Arrays.fill(core.sizeZ, 1); 
     523        for (int i=0; i<offsets.length; i++) { 
     524          int invalid = 0; 
     525          for (int q=0; q<offsets[i].length; q++) { 
     526            if (offsets[i][q] == 0) invalid++; 
     527          }  
     528          core.sizeT[i] = (offsets[i].length - invalid) / core.sizeC[i];  
     529          core.imageCount[i] = offsets[i].length - invalid;  
     530        }  
     531      } 
     532      else { 
     533        Arrays.fill(core.sizeX, core.sizeX[0]); 
     534        Arrays.fill(core.sizeY, core.sizeY[0]); 
     535        Arrays.fill(core.sizeC, core.sizeC[0] == 0 ? 1 : core.sizeC[0]); 
     536        Arrays.fill(core.sizeZ, core.sizeZ[0] == 0 ? 1 : core.sizeZ[0]); 
     537        Arrays.fill(core.sizeT, core.sizeT[0] == 0 ? 1 : core.sizeT[0]); 
     538        Arrays.fill(core.imageCount, core.imageCount[0]); 
     539        Arrays.fill(core.pixelType, core.pixelType[0]); 
     540      } 
     541 
     542      if (core.sizeZ[0] == 0) Arrays.fill(core.sizeZ, 1); 
    546543      if (core.sizeC[0] == 0) Arrays.fill(core.sizeC, 1); 
     544      if (core.sizeT[0] == 0) Arrays.fill(core.sizeT, 1); 
    547545      Arrays.fill(core.currentOrder, "XYCZT"); 
    548546      Arrays.fill(core.rgb, core.sizeC[0] > 1); 
     
    925923      } 
    926924      else if (qName.startsWith("TextInfoItem")) { 
    927         String value = attributes.getValue("value"); 
    928         if (value != null && value.indexOf("Dimensions") != -1) { 
    929           int ndx = value.indexOf("Dimensions"); 
    930           value = value.substring(ndx + 11, value.indexOf("\n", ndx)).trim(); 
    931           StringTokenizer st = new StringTokenizer(value, " x "); 
    932           while (st.hasMoreTokens()) { 
    933             String token = st.nextToken().trim(); 
    934             ndx = token.indexOf("(") + 1; 
    935             if (ndx == 0) continue; 
    936             int v = Integer.parseInt(token.substring(ndx, token.indexOf(")"))); 
    937             if (token.startsWith("T")) { 
    938               core.sizeT[0] = v; 
    939             } 
    940             else if (token.startsWith("Z")) core.sizeZ[0] = v; 
    941             else if (!token.startsWith("XY")) core.sizeC[0] = v; 
    942           } 
    943           if (core.sizeZ[0] == 0) core.sizeZ[0] = 1; 
    944           if (core.sizeC[0] == 0) core.sizeC[0] = 1; 
    945           if (core.sizeT[0] == 0) { 
    946             core.sizeT[0] = 1; 
    947           } 
    948           core.imageCount[0] = core.sizeZ[0] * core.sizeC[0] * core.sizeT[0]; 
    949         } 
     925        parseKeyAndValue(qName, attributes.getValue("Text"));        
    950926      } 
    951927      else if (qName.equals("dCompressionParam")) { 
     
    1010986      } 
    1011987    } 
    1012     else if (key.endsWith("TextInfoItem Text")) { 
     988    else if (key.endsWith("TextInfoItem")) { 
    1013989      value = value.replaceAll("&#x000d;&#x000a;", "\n"); 
    1014990      StringTokenizer tokens = new StringTokenizer(value, "\n"); 
Note: See TracChangeset for help on using the changeset viewer.