Changeset 7791 for trunk/projects


Ignore:
Timestamp:
10/13/11 15:54:04 (8 years ago)
Author:
curtis
Message:

Fix snapshot feature to actually work.

VisAD snapshots can only be done off the EDT.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/visbio-plugins/src/main/java/loci/visbio/OrthoStack.java

    r7790 r7791  
    245245        } 
    246246 
    247         public BufferedImage getSnapshot() { 
    248                 return display.getImage(); 
    249         } 
    250  
    251247        public void saveSnapshot() { 
    252248                // prompt for filename to save 
     
    257253                final File file = new File(directory, fileName); 
    258254 
    259                 // save snapshot 
    260                 final BufferedImage snapshot = getSnapshot(); 
    261                 final ImagePlus impSnapshot = new ImagePlus(fileName, snapshot); 
    262                 final FileSaver fileSaver = new FileSaver(impSnapshot); 
    263                 fileSaver.saveAsPng(file.getPath()); 
     255                // NB: VisAD snapshots can only be taken from *non-EDT* threads. 
     256                final Thread snapshotThread = new Thread(new Runnable() { 
     257 
     258                        @Override 
     259                        public void run() { 
     260                                final BufferedImage snapshot = getDisplay().getImage(); 
     261                                final ImagePlus impSnapshot = new ImagePlus(file.getName(), snapshot); 
     262                                final FileSaver fileSaver = new FileSaver(impSnapshot); 
     263                                fileSaver.saveAsPng(file.getPath()); 
     264                        } 
     265                }, "VisAD-Snapshot"); 
     266                snapshotThread.start(); 
     267                try { 
     268                        snapshotThread.join(); 
     269                } 
     270                catch (final InterruptedException exc) { 
     271                        IJ.handleException(exc); 
     272                } 
    264273        } 
    265274 
Note: See TracChangeset for help on using the changeset viewer.