Changeset 5743


Ignore:
Timestamp:
12/15/09 15:36:09 (10 years ago)
Author:
melissa
Message:

Added 'getBitsPerPixel()' to IFormatReader. Closes #433.

Location:
trunk/components/bio-formats/src/loci/formats
Files:
19 edited

Legend:

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

    r4953 r5743  
    6969  public int pixelType; 
    7070 
     71  /** Number of valid bits per pixel. */ 
     72  public int bitsPerPixel; 
     73 
    7174  /** Total number of images. */ 
    7275  public int imageCount; 
  • trunk/components/bio-formats/src/loci/formats/FileStitcher.java

    r5711 r5743  
    306306    FormatTools.assertId(currentId, true, 2); 
    307307    return noStitch ? reader.getPixelType() : core[getSeries()].pixelType; 
     308  } 
     309 
     310  /* @see IFormatReader#getBitsPerPixel() */ 
     311  public int getBitsPerPixel() { 
     312    FormatTools.assertId(currentId, true, 2); 
     313    return noStitch ? reader.getBitsPerPixel() : core[getSeries()].bitsPerPixel; 
    308314  } 
    309315 
  • trunk/components/bio-formats/src/loci/formats/FormatReader.java

    r5741 r5743  
    490490  } 
    491491 
     492  /* @see IFormatReader#getBitsPerPixel() */ 
     493  public int getBitsPerPixel() { 
     494    FormatTools.assertId(currentId, true, 1); 
     495    if (core[series].bitsPerPixel == 0) { 
     496      core[series].bitsPerPixel = 
     497        FormatTools.getBytesPerPixel(getPixelType()) * 8; 
     498    } 
     499    return core[series].bitsPerPixel; 
     500  } 
     501 
    492502  /* @see IFormatReader#getEffectiveSizeC() */ 
    493503  public int getEffectiveSizeC() { 
  • trunk/components/bio-formats/src/loci/formats/IFormatReader.java

    r5590 r5743  
    9191   */ 
    9292  int getPixelType(); 
     93 
     94  /** 
     95   * Gets the number of valid bits per pixel.  The number of valid bits per 
     96   * pixel is always less than or equal to the number of bits per pixel 
     97   * that correspond to {@link getPixelType()}. 
     98   */ 
     99  int getBitsPerPixel(); 
    93100 
    94101  /** 
  • trunk/components/bio-formats/src/loci/formats/ImageReader.java

    r5590 r5743  
    234234  } 
    235235 
     236  /* @see IFormatReader#getBitsPerPixel() */ 
     237  public int getBitsPerPixel() { 
     238    return getReader().getBitsPerPixel(); 
     239  } 
     240 
    236241  /* @see IFormatReader#getEffectiveSizeC() */ 
    237242  public int getEffectiveSizeC() { 
  • trunk/components/bio-formats/src/loci/formats/ReaderWrapper.java

    r5710 r5743  
    186186  public int getPixelType() { 
    187187    return reader.getPixelType(); 
     188  } 
     189 
     190  public int getBitsPerPixel() { 
     191    return reader.getBitsPerPixel(); 
    188192  } 
    189193 
  • trunk/components/bio-formats/src/loci/formats/in/ARFReader.java

    r5517 r5743  
    126126    else core[0].pixelType = FormatTools.UINT8; 
    127127 
     128    core[0].bitsPerPixel = bitsPerPixel; 
    128129    core[0].imageCount = numImages; 
    129130    core[0].dimensionOrder = "XYCZT"; 
  • trunk/components/bio-formats/src/loci/formats/in/AVIReader.java

    r5730 r5743  
    524524    core[0].metadataComplete = true; 
    525525 
    526     if (bmpBitsPerPixel <= 8) core[0].pixelType = FormatTools.UINT8; 
     526    if (bmpBitsPerPixel <= 8) { 
     527      core[0].pixelType = FormatTools.UINT8; 
     528      core[0].bitsPerPixel = bmpBitsPerPixel; 
     529    } 
    527530    else if (bmpBitsPerPixel == 16) core[0].pixelType = FormatTools.UINT16; 
    528531    else if (bmpBitsPerPixel == 32) core[0].pixelType = FormatTools.UINT32; 
  • trunk/components/bio-formats/src/loci/formats/in/BaseTiffReader.java

    r5668 r5743  
    424424    core[0].dimensionOrder = "XYCZT"; 
    425425    core[0].pixelType = firstIFD.getPixelType(); 
     426    core[0].bitsPerPixel = bps; 
    426427  } 
    427428 
  • trunk/components/bio-formats/src/loci/formats/in/DicomReader.java

    r5624 r5743  
    556556    if (imagesPerFile == 0) imagesPerFile = 1; 
    557557 
     558    core[0].bitsPerPixel = bitsPerPixel; 
    558559    while (bitsPerPixel % 8 != 0) bitsPerPixel++; 
    559     if (bitsPerPixel == 24 || bitsPerPixel == 48) bitsPerPixel /= 3; 
     560    if (bitsPerPixel == 24 || bitsPerPixel == 48) { 
     561      bitsPerPixel /= 3; 
     562      core[0].bitsPerPixel /= 3; 
     563    } 
    560564 
    561565    switch (bitsPerPixel) { 
  • trunk/components/bio-formats/src/loci/formats/in/FV1000Reader.java

    r5638 r5743  
    814814            pinholeSize = value; 
    815815          } 
     816          else if (key.equals("ValidBitCounts")) { 
     817            core[0].bitsPerPixel = Integer.parseInt(value); 
     818          } 
    816819        } 
    817820      } 
  • trunk/components/bio-formats/src/loci/formats/in/LeicaReader.java

    r5729 r5743  
    726726 
    727727          resolution = stream.readInt(); 
     728          core[i].bitsPerPixel = resolution; 
    728729          addSeriesMeta("Real world resolution", resolution); 
    729730          addSeriesMeta("Maximum voxel intensity", getString(stream, true)); 
  • trunk/components/bio-formats/src/loci/formats/in/MRWReader.java

    r5517 r5743  
    173173  /* @see loci.formats.FormatReader#initFile(String) */ 
    174174  protected void initFile(String id) throws FormatException, IOException { 
    175     debug("AliconaReader.initFile(" + id + ")"); 
     175    debug("MRW.initFile(" + id + ")"); 
    176176    super.initFile(id); 
    177177    in = new RandomAccessInputStream(id); 
     
    252252    core[0].sizeT = 1; 
    253253    core[0].interleaved = true; 
     254    core[0].bitsPerPixel = dataSize; 
    254255 
    255256    MetadataStore store = 
  • trunk/components/bio-formats/src/loci/formats/in/MetamorphReader.java

    r5711 r5743  
    873873            double exposure = Double.parseDouble(value); 
    874874            exposureTime = new Double(exposure / 1000); 
     875          } 
     876          else if (key.equals("Bit Depth")) { 
     877            core[0].bitsPerPixel = Integer.parseInt(value); 
    875878          } 
    876879        } 
  • trunk/components/bio-formats/src/loci/formats/in/NativeND2Reader.java

    r5742 r5743  
    462462        int c = getSizeC(); 
    463463        int pixelType = getPixelType(); 
     464        int bitsPerPixel = getBitsPerPixel(); 
    464465        boolean rgb = isRGB(); 
    465466        String order = getDimensionOrder(); 
     
    471472          core[i].sizeC = c == 0 ? 1 : c; 
    472473          core[i].pixelType = pixelType; 
     474          core[i].bitsPerPixel = bitsPerPixel; 
    473475          core[i].rgb = rgb; 
    474476          core[i].sizeZ = 1; 
     
    493495          core[i].imageCount = getImageCount(); 
    494496          core[i].pixelType = getPixelType(); 
     497          core[i].bitsPerPixel = getBitsPerPixel(); 
    495498          core[i].dimensionOrder = getDimensionOrder(); 
    496499        } 
     
    10681071        } 
    10691072      } 
     1073    } 
     1074    else if (key.endsWith("uiBpcSignificant")) { 
     1075      core[0].bitsPerPixel = Integer.parseInt(value); 
    10701076    } 
    10711077    else if (key.equals("VirtualComponents")) { 
  • trunk/components/bio-formats/src/loci/formats/in/OpenlabReader.java

    r5624 r5743  
    552552          core[i].interleaved = version == 5; 
    553553          break; 
     554        case DEEP_GREY_9: 
     555          core[i].bitsPerPixel = 9; 
     556          core[i].pixelType = FormatTools.UINT16; 
     557          core[i].rgb = false; 
     558          core[i].sizeC = 1; 
     559          core[i].interleaved = false; 
     560          break; 
     561        case DEEP_GREY_10: 
     562          core[i].bitsPerPixel = 10; 
     563          core[i].pixelType = FormatTools.UINT16; 
     564          core[i].rgb = false; 
     565          core[i].sizeC = 1; 
     566          core[i].interleaved = false; 
     567          break; 
     568        case DEEP_GREY_11: 
     569          core[i].bitsPerPixel = 11; 
     570          core[i].pixelType = FormatTools.UINT16; 
     571          core[i].rgb = false; 
     572          core[i].sizeC = 1; 
     573          core[i].interleaved = false; 
     574          break; 
     575        case DEEP_GREY_12: 
     576          core[i].bitsPerPixel = 12; 
     577          core[i].pixelType = FormatTools.UINT16; 
     578          core[i].rgb = false; 
     579          core[i].sizeC = 1; 
     580          core[i].interleaved = false; 
     581          break; 
     582        case DEEP_GREY_13: 
     583          core[i].bitsPerPixel = 13; 
     584          core[i].pixelType = FormatTools.UINT16; 
     585          core[i].rgb = false; 
     586          core[i].sizeC = 1; 
     587          core[i].interleaved = false; 
     588          break; 
     589        case DEEP_GREY_14: 
     590          core[i].bitsPerPixel = 14; 
     591          core[i].pixelType = FormatTools.UINT16; 
     592          core[i].rgb = false; 
     593          core[i].sizeC = 1; 
     594          core[i].interleaved = false; 
     595          break; 
     596        case DEEP_GREY_15: 
     597          core[i].bitsPerPixel = 15; 
     598          core[i].pixelType = FormatTools.UINT16; 
     599          core[i].rgb = false; 
     600          core[i].sizeC = 1; 
     601          core[i].interleaved = false; 
     602          break; 
    554603        case MAC_16_GREYS: 
    555         case DEEP_GREY_9: 
    556         case DEEP_GREY_10: 
    557         case DEEP_GREY_11: 
    558         case DEEP_GREY_12: 
    559         case DEEP_GREY_13: 
    560         case DEEP_GREY_14: 
    561         case DEEP_GREY_15: 
    562604        case DEEP_GREY_16: 
    563605          core[i].pixelType = FormatTools.UINT16; 
  • trunk/components/bio-formats/src/loci/formats/in/PerkinElmerReader.java

    r5624 r5743  
    761761        originZ = Double.parseDouble(value); 
    762762      } 
     763      else if (key.equals("SubfileType X")) { 
     764        core[0].bitsPerPixel = Integer.parseInt(value); 
     765      } 
    763766    } 
    764767    catch (NumberFormatException exc) { 
  • trunk/components/bio-formats/src/loci/formats/in/ZeissLSMReader.java

    r5668 r5743  
    15891589          addSeriesMeta(prefix + " " + metadataKeys.get(key), 
    15901590            blockData.get(key)); 
     1591 
     1592          if (metadataKeys.get(key).equals("Bits Per Sample")) { 
     1593            core[getSeries()].bitsPerPixel = 
     1594              Integer.parseInt(blockData.get(key).toString()); 
     1595          } 
    15911596        } 
    15921597      } 
  • trunk/components/bio-formats/src/loci/formats/tools/ImageInfo.java

    r5699 r5743  
    416416      int sizeT = reader.getSizeT(); 
    417417      int pixelType = reader.getPixelType(); 
     418      int validBits = reader.getBitsPerPixel(); 
    418419      int effSizeC = reader.getEffectiveSizeC(); 
    419420      int rgbChanCount = reader.getRGBChannelCount(); 
     
    498499      LogTools.println("\tPixel type = " + 
    499500        FormatTools.getPixelTypeString(pixelType)); 
     501      LogTools.println("\tValid bits per pixel = " + validBits); 
    500502      LogTools.println("\tMetadata complete = " + metadataComplete); 
    501503      LogTools.println("\tThumbnail series = " + thumbnail); 
Note: See TracChangeset for help on using the changeset viewer.