Changeset 3039


Ignore:
Timestamp:
08/03/07 14:44:47 (12 years ago)
Author:
melissa
Message:

Better pixel type/channel detection.

File:
1 edited

Legend:

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

    r3037 r3039  
    197197    if (!isJPEG) { 
    198198      return ImageTools.makeImage(openBytes(no), core.sizeX[0], core.sizeY[0], 
    199         core.sizeC[0], core.interleaved[0], 
     199        core.sizeC[0], !core.interleaved[0], 
    200200        FormatTools.getBytesPerPixel(core.pixelType[0]), core.littleEndian[0]); 
    201201    } 
     
    316316      } 
    317317   
    318       if (core.pixelType[0] == FormatTools.UINT32) { 
    319         core.sizeC[0] = 4; 
    320         core.pixelType[0] = FormatTools.UINT8; 
    321         core.interleaved[0] = true;  
    322       } 
    323  
    324318      if (core.sizeC[0] == 0) core.sizeC[0] = 1; 
    325319      core.currentOrder[0] = "XYCZT"; 
    326       core.rgb[0] = core.sizeC[0] >= 3; 
     320      core.rgb[0] = core.sizeC[0] > 1; 
    327321      core.littleEndian[0] = true; 
     322      core.interleaved[0] = false; 
    328323 
    329324      return; 
     
    712707        } 
    713708      } 
     709      else if (qName.equals("uiBpcInMemory")) { 
     710        if (attributes.getValue("value") == null) return;  
     711        int bits = Integer.parseInt(attributes.getValue("value")); 
     712        int bytes = bits / 8; 
     713        switch (bytes) { 
     714          case 1: 
     715            core.pixelType[0] = FormatTools.UINT8; 
     716            break; 
     717          case 2: 
     718                core.pixelType[0] = FormatTools.UINT16; 
     719                break; 
     720          case 4: 
     721                core.pixelType[0] = FormatTools.UINT32; 
     722                break; 
     723          default: core.pixelType[0] = FormatTools.UINT8; 
     724        } 
     725        addMeta(qName, attributes.getValue("value")); 
     726      } 
    714727      else if (qName.equals("uiHeight")) { 
    715728        core.sizeY[0] = Integer.parseInt(attributes.getValue("value")); 
Note: See TracChangeset for help on using the changeset viewer.