Changeset 4818


Ignore:
Timestamp:
02/18/09 11:03:09 (11 years ago)
Author:
melissa
Message:

Parse pixel sizes from axis notes with type 'VARIABLE'.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/bio-formats/src/loci/formats/in/BioRadReader.java

    r4817 r4818  
    306306      n.p = in.readString(80); 
    307307 
    308       /* debug */ System.out.println("(" + n.type + ") " + n.p); 
    309  
    310308      if (n.type < 0 || n.type >= NOTE_NAMES.length) { 
    311309        notes = false; 
     
    325323      n.p = n.p.substring(0, ndx).trim(); 
    326324 
    327       n.p = n.p.replaceAll("=", ""); 
     325      String value = n.p.replaceAll("=", ""); 
    328326      Vector v = new Vector(); 
    329       StringTokenizer t = new StringTokenizer(n.p, " "); 
     327      StringTokenizer t = new StringTokenizer(value, " "); 
    330328      while (t.hasMoreTokens()) { 
    331329        String token = t.nextToken().trim(); 
     
    337335          int noteType = Integer.parseInt(tokens[1]); 
    338336 
    339           if (noteType == 2 && n.p.indexOf("AXIS_4") != -1) { 
     337          if (noteType == 2 && value.indexOf("AXIS_4") != -1) { 
    340338            core[0].sizeZ = 1; 
    341339            core[0].sizeT = getImageCount(); 
     
    509507                    detector); 
    510508                } 
     509              } 
     510            } 
     511            else { 
     512              String[] values = value.split(" "); 
     513              if (values.length > 1) { 
     514                try { 
     515                  int type = Integer.parseInt(values[0]); 
     516                  if (type == 257 && values.length >= 3) { 
     517                    // found length of axis in um 
     518                    float start = Float.parseFloat(values[1]); 
     519                    float end = Float.parseFloat(values[2]); 
     520                    float axisLength = end - start; 
     521                    if (key.equals("AXIS_2")) { 
     522                      float pixelSize = axisLength / getSizeX(); 
     523                      store.setDimensionsPhysicalSizeX( 
     524                        new Float(pixelSize), 0, 0); 
     525                    } 
     526                    else if (key.equals("AXIS_3")) { 
     527                      float pixelSize = axisLength / getSizeY(); 
     528                      store.setDimensionsPhysicalSizeY( 
     529                        new Float(pixelSize), 0, 0); 
     530                    } 
     531                  } 
     532                } 
     533                catch (NumberFormatException e) { } 
    511534              } 
    512535            } 
Note: See TracChangeset for help on using the changeset viewer.