Changeset 6500


Ignore:
Timestamp:
06/08/10 10:54:58 (10 years ago)
Author:
melissa
Message:

Apply one LUT to each channel if the original file contains its own LUTs. Closes #495.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.2/components/loci-plugins/src/loci/plugins/in/ImagePlusReader.java

    r6497 r6500  
    313313    // CTR FIXME - problems with default color mode 
    314314    int mode = -1; 
     315    boolean indexed = process.getReader().isIndexed(); 
    315316    int sizeC = process.getReader().getSizeC(); 
    316317    if (sizeC == 1) { 
     
    328329    else if (options.isColorModeGrayscale()) mode = CompositeImage.GRAYSCALE; 
    329330    else if (options.isColorModeCustom()) mode = CompositeImage.COLOR; 
     331    else if (indexed && sizeC > 1) mode = CompositeImage.COLOR; 
     332 
    330333    if (mode != -1) { 
    331334      List<ImagePlus> compositeImps = new ArrayList<ImagePlus>(); 
     
    335338        int series = (Integer) imp.getProperty("Series"); 
    336339        if (options.isColorModeCustom()) luts = makeLUTs(series); 
     340        else if (indexed) { 
     341          luts = new LUT[sizeC]; 
     342          for (int i=0; i<luts.length; i++) { 
     343            byte[][] lut = null; 
     344            try { 
     345              int index = process.getReader().getIndex(0, i, 0); 
     346              process.getReader().openBytes(index, 0, 0, 1, 1); 
     347              lut = process.getReader().get8BitLookupTable(); 
     348            } 
     349            catch (FormatException e) { } 
     350            catch (IOException e) { } 
     351            if (lut != null) { 
     352              luts[i] = new LUT(lut[0], lut[1], lut[2]); 
     353            } 
     354            else { 
     355              luts = null; 
     356              break; 
     357            } 
     358          } 
     359        } 
    337360        if (luts != null) compImage.setLuts(luts); 
    338361        compositeImps.add(compImage); 
  • trunk/components/loci-plugins/src/loci/plugins/in/ImagePlusReader.java

    r6499 r6500  
    313313    // CTR FIXME - problems with default color mode 
    314314    int mode = -1; 
     315    boolean indexed = process.getReader().isIndexed(); 
    315316    int sizeC = process.getReader().getSizeC(); 
    316317    if (sizeC == 1) { 
     
    328329    else if (options.isColorModeGrayscale()) mode = CompositeImage.GRAYSCALE; 
    329330    else if (options.isColorModeCustom()) mode = CompositeImage.COLOR; 
     331    else if (indexed && sizeC > 1) mode = CompositeImage.COLOR; 
     332 
    330333    if (mode != -1) { 
    331334      List<ImagePlus> compositeImps = new ArrayList<ImagePlus>(); 
     
    335338        int series = (Integer) imp.getProperty("Series"); 
    336339        if (options.isColorModeCustom()) luts = makeLUTs(series); 
     340        else if (indexed) { 
     341          luts = new LUT[sizeC]; 
     342          for (int i=0; i<luts.length; i++) { 
     343            byte[][] lut = null; 
     344            try { 
     345              int index = process.getReader().getIndex(0, i, 0); 
     346              process.getReader().openBytes(index, 0, 0, 1, 1); 
     347              lut = process.getReader().get8BitLookupTable(); 
     348            } 
     349            catch (FormatException e) { } 
     350            catch (IOException e) { } 
     351            if (lut != null) { 
     352              luts[i] = new LUT(lut[0], lut[1], lut[2]); 
     353            } 
     354            else { 
     355              luts = null; 
     356              break; 
     357            } 
     358          } 
     359        } 
    337360        if (luts != null) compImage.setLuts(luts); 
    338361        compositeImps.add(compImage); 
Note: See TracChangeset for help on using the changeset viewer.