Changeset 2723


Ignore:
Timestamp:
05/02/07 13:55:34 (13 years ago)
Author:
curtis
Message:

Only write current slice for output formats that cannot do stacks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/plugins/Exporter.java

    r2722 r2723  
    7878      // open a dialog prompting for the filename to save 
    7979      SaveDialog sd = new SaveDialog("LOCI Bio-Formats Exporter", "", ""); 
    80       outfile = new File(sd.getDirectory(), sd.getFileName()).getAbsolutePath(); 
    81       if (outfile == null) { 
    82         return; 
    83       } 
     80      String dir = sd.getDirectory(); 
     81      String name = sd.getFileName(); 
     82      if (dir == null || name == null) return; 
     83      outfile = new File(dir, name).getAbsolutePath(); 
     84      if (outfile == null) return; 
    8485    } 
    8586 
     
    114115      } 
    115116 
    116       // convert and save each slice 
     117      // convert and save slices 
    117118 
    118119      ImageStack is = imp.getStack(); 
    119       for (int i=0; i<is.getSize(); i++) { 
    120         IJ.showStatus("Saving plane " + (i + 1) + "/" + is.getSize()); 
    121         IJ.showProgress((double) (i + 1) / is.getSize()); 
     120      int size = is.getSize(); 
     121      boolean doStack = w.canDoStacks() && size > 1; 
     122      int start = doStack ? 0 : imp.getCurrentSlice() - 1; 
     123      int end = doStack ? size : start + 1; 
     124 
     125      for (int i=start; i<end; i++) { 
     126        if (doStack) { 
     127          IJ.showStatus("Saving plane " + (i + 1) + "/" + size); 
     128          IJ.showProgress((double) (i + 1) / size); 
     129        } 
     130        else IJ.showStatus("Saving image"); 
    122131        proc = is.getProcessor(i + 1); 
    123          
     132 
    124133        BufferedImage img = null; 
    125134        int x = proc.getWidth(); 
     
    141150          byte[][] pix = new byte[3][x*y]; 
    142151          ((ColorProcessor) proc).getRGB(pix[0], pix[1], pix[2]); 
    143           img = ImageTools.makeImage(pix, x, y);  
     152          img = ImageTools.makeImage(pix, x, y); 
    144153        } 
    145154 
     
    149158            img = ImageTools.makeType(img, types[types.length - 1]); 
    150159          } 
    151           w.saveImage(img, i == is.getSize() - 1); 
     160          w.saveImage(img, i == end - 1); 
    152161        } 
    153         else w.saveImage(img, i == is.getSize() - 1); 
     162        else w.saveImage(img, i == end - 1); 
    154163      } 
    155164    } 
Note: See TracChangeset for help on using the changeset viewer.