http://imagej.273.s1.nabble.com/Saving-the-current-session-tp5005456p5005462.html
multiple workspaces (or sessions) and restore them. It has the same
limitations that you raised.
> Hi everyone,
>
> does someone out there have a plugin to save the current ImageJ session to
> disk? It need not be perfect (I don't care about placing windows to the
> correct position, etc.)...
>
> I tried a simple macro approach (below), but I got stuck:
> - 'Save as zip' does not save FFT data of FFT windows
> - No way to determine in a macro whether the front window is a text or
> Results window. [getInfo("window.contents") gives unpredictable results if
> the front window is neither image nor text]
> - Plots won't have data behind them (that's a restriction I could live
> with).
>
> Long time ago, this topic was already discussed on the mailinglist, and it
> was suggested to have the ImageJ data types implement Serializable. Is I
> understand it, however, this would imply the risk that one can't read the
> session after updating ImageJ, which is also not so nice...
>
> Michael
> ________________________________________________________________
>
> // SaveSession macro
> // Saves images and more of an ImageJ session
> // V0.0 M. Schmid 2013-11-05
> //
> // Restrictions (there are actually more):
> // Images do not remember the source file
> // FFTs are saved as plain 8-bit images (no Fourier transform behind,
> can't do inverse FFT)
> // Plots are saved as images with no data
> // What about texts?
> // How to discriminate ResultsTables and text with tabs?
> // Settings are not saved (ImageJ saves some settings to the ijPrefs.txt
> file)
> //
> basePath=getDirectory("Choose a Directory to Save the Session");
> getDateAndTime(year, month, dayOfWeek, dayOfMonth, hour, minute, second,
> msec);
> date= dayOfMonth+100*(month+1)+10000* dayOfMonth;
> time=second+100* minute+10000*hour;
> dirName="IJsavedSession_"+date+"_"+IJ.pad(time,6);
> path=basePath+File.separator+dirName;
> File.makeDirectory(path);
> // ----------------- Images -----------------
> while(nImages()>0) {
> selectImage(1);
> fileNoExt=path+File.separator+getTitle;
> uniqueNum="";
> while (File.exists(fileNoExt+uniqueNum +".zip")) {
> if (uniqueNum="") uniqueNum="0";
> uniqueNum = toString(parseInt(uniqueNum)-1); //-1, -2, etc.
> }
> save(fileNoExt+uniqueNum+".zip");
> close();
> }
> // ----------------- Log Window -----------------
> logText=getInfo("log");
> if(logText!="") {
> File.saveString(logText, path+File.separator+"log.txt");
> selectWindow("Log");
> run("Close");
> }
>
> // ----------------- ROI Manager -----------------
> nRois=roiManager("count");
> if (nRois>0) {
> roiManager("Save", path+File.separator+"roiSet.zip");
> selectWindow("ROI Manager");
> run("Close");
> }
> // ----------------- Results -----------------
> if (nResults>0) {
> saveAs("results", path+File.separator+"resultsTable.csv");
> }
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>