Release Notes

- 1.52j 28 December 2018
  - Added the Macros>Enter Interactive Mode command to the text editor, which enables interactive editing and running of macro and JavaScript code (example). Type "js" in interactive mode to switch the language to JavaScript. Also added the associated Plugins>Macros>Interactive Interpreter command (shortcut: "j").
  - Thanks to Ved Sharma, point selections with more than 65,535 points can now be saved and reopened (example).
  - Thanks to Philippe Carl, the status bar is updated when adjusting elliptical and rotated rectangle selections.
  - Thanks to Ilan Tal, added the "Ignore Rescale Slope and open as 16-bit" checkbox to the Edit>Optios>DICOM dialog.
  - Thanks to Michael Schmid, Image>Edit>Resize can now convert a single image to a stack.
  - Thanks to MichaelSchmid, improved the calculation of Feret parameters for composite selections. FeretAngle is now reported (within 0.5 deg), works with pixel aspect ratios different from one and is more accuate due to use of 0.5 deg increments.
  - Thanks to MichaelSchmid, the output of ROI Manager 'AND', 'OR' and 'XOR' operations are, if possible, converted from composite ROIs into simpler polygon ROIs.
  - Thanks to Jerome Mutterer, errors in macro run() statements are now reported using a "Macro Error" dialog that displays the line number.
  - Added the ImagePlus.plotHistogram() method. For examples, run Help>Examples>JavaScript>Histogram Plots.
  - Added the JavaScript-friendly ImageStatistics.histogram() method (example).
  - Added the Overlay.setLabelFontSize(size,options), Overlay.setLabelColor(), Overlay.setStrokeColor() and Overlay.setStrokeWidth() macro functions, and corresponding Overlay class methods (example).
  - Thanks to Jerome Mutterer, added the setIgnoreErrors() and getErrorMessage() methods to the Interpreter class (example).
  - Thanks to Michael Schmid, fixed a bug that caused Image>Edit>Resize to not preserve stack lookup tables.
  - Thanks to Stein Rorvik, fixed Orthogonal Views bugs that caused freezing, nonworking XZ and YZ dragging and lack of density calibration, and incorrect behavior when "Rotate YZ" and "Flip XZ" where enabled in Edit>Options>DICOM.
  - Thanks to Stein Rorvik, fixed a bug that caused particle analyzer overlays to not be specific to the current slice when processing one slice.
  - Fixed a bug that caused the color of overlay labels to be set to black after the image was saved and reopened.
  - Fixed a bug that caused the Image>Overlay>To ROI Manager command to not preserve overlay properties such a label color and scalability.
  - Thanks to Wilhelm Burger, fixed a bug that caused the Roi.setLocation(x,y) method to not work correctly with ShapeRois if x or y were not integers.
  - Thanks to Philippe Carl, fixed a bug that caused the status bar to not be updated or to not be updated correctly when moving or changing the length of straight line selections and arrows using the arrow keys.
- 1.52i 26 November 2018
  - Thanks to Ved Sharma and Michael Kaul, added the Image>Stacks>Measure Stack command (macro source), useful for plotting stacks using the contextual (right-click) Plot command in Results tables.
  - Thanks to Jerome Mutterer, added the Image>Stacks>Tools>Magic Montage Tools command (macro source).
  - Tables can be sorted using the Sort command in the contextual (right-click) menu or in the Results menu (example).
  - Thanks to Matias Andina, the Image>Transform>Rotate command can now be used interactiely.
  - Thanks to Michael Schmid, added an "F" (Fit All) icon next to the "R" (Reset Range) icon in the bottom-left corner of plot windows.
  - Thanks to Robert Haase and Emanuele Martini, added a "Don't reset range" checkbox to the "Threshold" dialog (example).
  - Added an error bars example to the Help>Examples>Plots>Plot Styles macro.
  - Alphabetized the Image>Stacks>Tools menu.
  - Moved the Image>Stacks>Plot XY Profile command to Image>Stacks>Tools>Plot XY Profile.
  - Thanks to 'Barbara' and Michael Schmid, the Translate command in the ROI Manager remembers the x and y offset values.
  - Thanks to Alex Mironov, added an optional properties string argument to the makePoint() macro function (macro example, JavaScript example).
  - Thanks to Alex Mironov, the setLineWidth() macro function automatically calls Overlay.add() when the line width changes (example).
  - Added the Plot.replace() macro function and method. For examples, run Help>Examples>Plots>Random Data or Help>Examples>JavaScript>Plot Random Data.
  - Thanks to Michael Schmid, added an "Add Fit" commamnd to the Data>> menu of Plot windows.
  - Thanks to Laurent Thomas, ShortProcessor.rotate() and FloatProcessor.rotate() now fill using the value set by setBackgroundValue().
  - Thanks to Kai Barthel, the Analyze>Calibrate command resets the display range of contrast-reduced images.
  - Thanks to Norbert Vischer, the curve fitter now works with datasets containing NaNs.
  - Thanks to Michael Schmid, added the Plot.objectCount macro function.
  - Thanks to Matias Andina, added the setOption("SupportMacroUndo",boolean) macro function (example).
  - Thanks to Michael Schmid, added a constructor for creating a plot from arrays to the PlotContentsDialog class (example).
  - Added the PointRoi.getLastCounter() method.
  - Added the getSizeInBytes() methods to the ImagePlus class.
  - Thanks to Philippe Carl and Michael Schmid, fixed a bug that caused the macro interpreter to incorrectly evaluate string expressions containing numeric arrays indexed using the ++ operator.
  - Thanks to Stein Rorvik, fixed a bug that caused the changeValues() macro funtion to reset the display range of 16-bit and 32-bit images.
  - Thanks to Alex Mironov, fixed a bug that caused setLineWidth(1) in a macro to incorrectly set the line width to the width set in the Edit>Options>Line Width dialog.
  - Thanks to Michael Schmid, fixed a bug that caused the Undo command to not work after rotating an image with "Enlarge image" enabled.
  - Thanks to Matias Andina, fixed a bug that caused the Undo command to not work after cropping or rotating a composite color image.
  - Thanks to Michael Schmid, fixed a bug that caused nudging the end of a line selection with alt-arrow keys to not update a live profile plot.
  - Thanks to Mark Senko and Michael Schmid, fixed a bug that caused profile plots of line selections wider than 1 to differ from profile plots of rectangles of the same size.
  - Fixed a bug that caused DICOM images to be displayed incorrectly if "Open as 32-bit float" was enabled in Edit>Options>DICOM.
  - Thanks to Kenneth Sloan, fixed a bug that caused the Paintbrush Tool (in "Paint on overlay" mode) to delete pre-existing overlays.
  - Thanks to 'mountain_man', fixed a bug that caused the Rescale Slope tag (0028,1053) to be ignored when opening DICOM images and "Open as 32-bit float" was not enabled in Edit>Options>DICOM.
  - Thanks to Fred Damen, fixed a file path recording bug that caused a NullPointerException.
  - Thanks to Michael Schmid, fixed a bug that caused buttons in some dialogs (e.g., "B&C" and "Threshold") to not be displayed correctly on macOS when using the Metal look and feel. Opening an Action Bar switches to Metal or use Edit>Options>Look and Feel in Fiji.
  - Thanks to Michael Schmid, fixed a bug that caused plot stacks to not be spatially calibrated.
  - Thanks to Nicolas Stifani, fixed a 1.52h regression on Windows that caused canceled dialog boxes in macros started using the Plugins>Macros>Run command to throw an exception.
  - Thanks to Jerome Mutterer, fixed a v1.52 regression that caused the getMetadata() macro function (without the "info" or "label" argument) to not work as expected.
- 1.52h 16 October 2018
  - Plot enhancements, thanks to Michael Schmid:
    - "Save" in plot windows has moved into a new Data>> menu, which includes two additional items: (1) Add from Plot (takes a PlotObject, e.g. data set, text, etc., from a different plot) and (2) Add from Table (adds data from a "Results" table).
    - Values in tables can be be plotted directly using the contextual menu or the Results>Plot command in "Results" tables.
    - Added the Separated Bar type, a bar graph with some space between the columns. For an example, run Help>Examples>JavaScript>Plot Styles.
    - Histogram-like "Bar" plots also work with non-equidistant points along x.
    - Connected Circles fill the circles with the secondary color (= line color), if that color is given and not null.
    - Improved the code for filling bars and "filled" curves.
    - For "Bar" and "Separated Bar", the base line of the plot is y = 0 if the values differ by more than a factor of 2.
  - Added the Help>Examples>Plots>Plot Styles and ...JavaScript>Plot Styles examples.
  - The Edit>Selection>Create Mask command works with overlays created by the Brush and Pencil tools.
  - Added a "Help" button to the Brush and Pencil tool dialog boxes.
  - Thanks to Gabriel Landini and Jerome Mutterer, the text tool now creates an "Enter text..." selection when you click (without dragging) on an image and there is no existing selection.
  - Thanks to Gabriel Landini, the "Show on all slices" option (was "Show all") now appears in both the point and multi-point tool dialogs.
  - Thanks to Stein Rorvik, the Analyze>Tools>Synchronize Windows tool now supports use of the "+" and "-" keys for synchronized zooming when the "Image scaling" option is enabled.
  - Thanks to Lorenzo Cangiano, added a "Points" column to the Image>Overlay>List Elements table.
  - Added the Plot.setStyle() macro function. For an example, run Help>Examples>Plots>Plot Styles.
  - Added the IJ.exit() method, which aborts JavaScripts.
  - Thanks to Bio7, fixed a bug that caused images to turn black when assigned an ImageRoi created by the Brush or Pencil tools.
  - Thanks to Stein Rorvik, fixed bugs that caused File>Open Next to sometimes fail when opening images of dissimilar types.
  - Thanks to Michael Schmid, fixed several bugs in the Image>Adjust>Threshold tool, mostly related to 32-bit images.
  - Thanks to Michael Cammer and Michael Schmid, fixed a bug that caused the "Propagate to the other n channels of this image" option of the "Set" command in the "B&C" tool to not work as expected.
  - Thanks to Stein Rorvik and Michael Schmid, fixed a bug that caused an image pasted into a zoomed image to be incorrectly positioned if the pasted image was equal or larger in size than the target image.
  - Thanks to Stein Rorvik, fixed bugs that caused scale bars to be incorrectly positioned on large images and macros to alter default scale bar dialog settings.
  - Fixed a bug that caused keyboard shortcuts for zooming in and out, as well as other shortcuts, to not work when a text selection was active.
  - Thanks to Stein Rorvik, fixed a bug that caused right-justified text added to an overlay by the Overlay.drawString() macro function to not be displayed correctly.
  - Thanks to "hwada", fixed bugs that caused the ImagePlus.setImage(ImagePlus) method to sometimes not work as expected.
  - Thanks to Nathalie Houssin, fixed a bug that caused the Make Substack command to throw an exception when used with hyperstacks opened by the OlympusViewer plugin.
  - Fixed bugs in the ImagePlus.setStack() method.
  - Thanks to Michael Schmid, fixed a bug that caused the "Show All" button in the ROI Manager to not work as expected with point selections.
  - Thanks to Lorenzo Cangiano, fixed a bug that caused programmatically generated overlays of PointRois on stacks to be not shown when saved and reopened.
  - Thanks to Robert Haase, fixed a bug that could cause the PolygonRoi.getTracedPerimeter() method to throw a NullPointerException.
  - Thanks to Hyung-song Nam and Curtis Rueden, fixed a bug that caused keyboard shortcuts to not work with the "Channels" tool.
  - Thanks to Gilles Carpentier, fixed a 1.52f regression that caused the Edit>Selection>Create Mask command to not work as expected if the image had both an roi and an overlay.
  - Thanks to Norbert Vischer, fixed a 1.52g regression that caused multi-channel images to lose color table and display range information after being cropped and saved.
  - Thanks to Stephen Royle, fixed a 1.52h regression that caused the Image>Transform>Rotate 90 Degrees Right (or Left) command to not work as expected with composite images.
- 1.52g 16 September 2018
  - A text selection in an overlay can be deleted by alt-clicking on it and pressing backspace+delete (on Windows) or command+delete (on Macs).
  - Fixed a bug that caused polygon and polyline selections to lose properties like color, line width and name when a point is added by shift-clicking on an existing point.
  - Thanks to Dave Mason, fixed a bug that caused the File>Import>URL command to not correctly open Hyperstacks.
  - Thanks to Volko Straub, fixed a 1.52f regression that caused getDirectory("") on Windows to return a string ending in "/" instead of the expected "\".
- 1.52f 7 September 2018
  - Thanks to Norbert Vischer, added the Plot.addHistogram() macro function, which plots a histogram from an array (example).
  - Thanks to Norbert Vischer, any currently running macro is aborted when running an installed macro from the Plugins>Macros menu or the editor's Macros menu.
  - Thanks to Michael Schmid, added the "Error Function" [y=a+b*erf((x-c)/d)] curve fit option and the ij.util.IJ.Math.erf(x) method (example).
  - The Edit>Selection>Create Mask command works with line selections and overlays.
  - The "Black background" setting defaults to 'true'.
  - Thanks to Anna Povolna, the "Open all files in folder" and "Use virtual stack" options in the File>Import>raw dialog can be used at the same time.
  - Thanks to 'Sethur', ImageJ no longer sorts imported DICOM stacks by series number (tag 0020,0011) if "Sort images numerically" is not checked in the File>Import>ImageSequence dialog. Also added a recordable 'noMetaSort' option to the options string of the FolderOpener.open(dir,options) method.
  - Thanks to 'Alan', added the createThresholdMask() and createRoiMask() methods to the ImagePlus class. These methods are recorded when using the Edit>Selection>Create Mask command (JavaScript example).
  - Added the recordable Raw.open(), Raw.openAll() and Raw.openAllVirtual() methods (JavaScript example).
  - Thanks to Stein Rorvik, added the DicomTools.getTagName(tag) method.
  - Thanks to Christian Tischer, fixed bugs in the RoiManager.add(ImagePlus,Roi,int) method than caused it to not behave as expected if the ROI name was not null.
  - Thanks to Norbert Vischer, fixed bugs that caused the Edit>Cut and Analyze>Set Scale commands to not set the 'changes' flag.
  - Thanks to Stein Rorvik, fixed a bug that caused the Overlay.drawString macro function to ignore the justification set by the setJustification() function.
  - Thanks to Stein Rorvik, fixed a bug that caused output of the Overlay.drawString() function to be lost when text is added using Overlay.addSelection().
  - Thanks to Lorenzo Cangiono, fixed a bug that caused selections pasted into images to not be saved.
  - Thanks to Mahmoudi Sidi Ahmed, fixed a bug that caused the Analyze>Calibrate command to not work with signed 16-bit images.
  - Thanks to Menelaos Symeonides, fixed an ROI Manager bug that caused the stack position to be ignored when measuring renamed ROIs.
  - Thanks to Ron DeSpain, fixed a bug that caused attempts to add to (by holding shift key down) and subract from (by holding alt key down) elliptical selections to fail.
  - Thanks to Ron DeSpain, fixed a bug that caused the Window>Tile command to overlap the "ImageJ" window with image titles.
  - Thanks to Pete Bankhead, fixed a bug the caused the Process>Batch>Convert command to not work correctly on Macs.
  - Thanks to 'Hamish', fixed a bug that caused the roiManager("delete") macro function to throw an exception when used in a loop.
  - Thanks to Stein Rorvik, fixed a bug that caused one column results tables to not be displayed correctly.
  - Thanks to Stein Rorvik, fixed a bug that caused File>Import>Raw to silently fail when importing a stack and the file size was smaller than the size of a single image.
  - Thanks to Stein Rorvik, fixed a bug that caused the Overlay.drawString() macro function to not correctly display right-justified text.
  - Thanks to Stein Rorvik, fixed bugs that caused the run("Raw...",options) and run("Image Sequence...",options) macro functions to fail silently if the file or folder did not exist.
  - Thanks to Stein Rorvik, fixed a bug that caused the stack title to be incorrect after importing an image sequence on Windows using a file path with forward slashes.
  - Thanks to Stein Rorvik, fixed a bug that caused File>Open Next to not correctly open a non-composite image after having opened a composite image.
  - Thanks to Ved Sharma, fixed an ROI Manager bug that caused a "Rename ROI" dialog do be unexpectadly displayed when running macro using setKeyDown("alt") and makeOval() to create a composite selection.
  - Thanks to Ved Sharma, fixed an ROI Manager bug that caused an exception when saving an ROI set containing a point selection followed by a composite selection.
  - Thanks to Salim Kanoun, fixed a bug that caused RoiManager.addRoi(roi) calls to be ignored if the ROI was a duplicate.
  - Thanks to 'TMC', fixed a bug that caused the ROI Manager's "Interpolate ROIs" command to throw an exception.
  - Thanks to 'Agnieszka', fixed a bug that caused the ImagePlus.getFileInfo() method to throw a NullPointerException.
  - Thanks to Stein Rorvik, fixed a bug that caused the Macros>Evaluate commands in the text editor to not update the Window menu.
  - Thanks to Norbert Vischer, fixed a bug that caused the macro editor to not always abort any existing macro before running another one.
  - Thanks to Manel Bosch, fixed a 1.52e regression that caused image conversions to RGB to not preserve the color coding.
- 1.52e 11 July 2018
  - The "Threshold" tool no longer resets the display range of 16-bit and 32-bit images.
  - Restored the "Set" button (removed in 1.51r) to the "Threshold" dialog,
  - Thanks to Kai Schleicher, the options string of the FolderOpener.open(dir,options) method can now include a file name filter (example).
  - Added a no-argument constructor to the PointRoi class (example at Help>Examples>JavaScript>Points).
  - Added the Roi.size() method, equivalent to Roi.getPolygon().npoints.
  - Added the FFT.forward(), FFT.multiply(), FFT.inverse() and FFT.filter() methods (JavaScript example).
  - The open("/path/to/file.avi") macro function and the IJ.openImage("/path/to/file.avi") method now open AVI files by default as virtual stacks.
  - Thanks to Volko Straub and Michael Schmid, fixed bugs that caused the ImageProcessor.isInvertedLut() and ImageProcessor.isColorLut() methods to sometimes incorrectly return 'true' with thresholded images.
  - Thanks to Volko Straub, fixed a bug that could cause non-thresholded pixels in 16-bit and 32-bit images to be highlighted in red (example).
  - Thanks to Thomas Boudier and Jan Eglinger, fixed a bug that caused macro file name parameters containing a "]" character to not be read correctly.
  - Thanks to Michael Nonet, fixed a bug caused the median to always be set to zero when measuring line selections.
  - Thanks to Norbert Vischer, fixed a bug that caused errors after running the run("RGB Stack") or run("HSB Stack") macro functions on large images when running Java 8 on macOS.
  - Thanks to Chris Wood and Curtis Rueden, fixed a bug that caused the Image>Stacks>Delete Slice command to deadlock when deleting the last channel of a hyperstack.
  - Thanks to Stein Rorvik, fixed a bug that caused the Process>Math>NaN Background command to throw an exception when attempting to process a non-32-bit stack.
  - Thanks to Stein Rorvik, fixed a bug on Windows that caused text to be pasted into text editor windows at the wrong position.
  - Thanks to Stein Rorvik, fixed a bug that caused print("\n\n") to do nothing instead of outputting two blank lines as expected.
  - Thanks to 'mryellow', fixed a bug that caused polygonal ROIs with more than 65,535 points to not be saved correctly.
  - Thanks to Stein Rorvik, fixed a bug that caused right justified TextRois. to not be displayed correctly if the fill color was not set.
  - Thanks to Lorenzo Cangiano and Jan Eglinger, fixed a 1.52c regression that caused a "Save changes?" dialog to be unexpectedly displayed when closing an image with a multi-point selection.
  - Thanks to Stein Rorvik, fixed a 1.52d regression that caused density calibration to be lost when duplicating 8-bit and 16-bit images.
- 1.52d 11 June 2018
  - The Image>Show Info command no longer truncates one line slice labels to 60 charactera.
  - Thanks to Norbert Vischer, the changeValues() macro function can now be used to replace NaNs. (example).
  - Thanks to Mark Histed, when the shift key is down, the display range is no longer changed when stepping forward/back in a stack.
  - Thanks to Hugo, the Process>FFT command displays an error message if the padded image is going to be 65536x65536 or larger.
  - Thanks to Roger Leigh, the IJ.javaVersion() method works with Java 11.
  - Added the IJ.Roi(x,y,w,h) and IJ.OvalRoi(x,y,w,h) methods.
  - Thanks to Gregor and Michael Schmid, added the ImageProcessor.createMask() method (example).
  - Thanks to David Kysela, added the PointRoi.promptBeforeDeleting(boolean) method (example).
  - Thanks to Laurent Thomas, added the ImagesToStack.run(images) method (example).
  - Added the Tools.getStatistics(double[]) method.
  - Thanks to Ximo Soriano and Michael Schmid, fixed a bug that could cause the newImage("Name","RGB noise",width,height,1) macro function to throw an exception.
  - Thanks to Ruben Gres, fixed a bug that caused the Overlay.duplicate() method to not keep the 'isCalibrationBar' and 'selectable' settings.
  - Thanks to David Schreiner, fixed bugs that caused the File>Import>Image Sequence command to not correctly handle image metadata longer then 60 characters.
  - Thanks to 'yahbai', fixed bugs that caused the saveAs("jpg",path), saveAs("gif",path) and Overlay.measure macro functions to not work in headless mode.
  - Thanks to 'yahbai', fixed a bug that caused the ImagePlus.deleteRoi() method to throw an exception in headless mode.
  - Thanks to Michael Kaul, fixed a 1.52a regression that caused an EOFException when opening Analyze format RGB images.
  - Thanks to Bill Christens-Barry, fixed a 1.52b regression that caused the label set with the setMetadata("Label", label) macro function to not be displayed in the image subtitle of single images.
  - Thanks to Michael Cammer, fixed a 1.52c regression that caused the Image>Crop command to not work as expected with 16-bit images.
  - Thanks to Peter Meijer, fixed a 1.52c regression that could cause ClassCastExceptions when converting RGB images to stacks.
- 1.52c 20 May 2018
  - Activating an ROI in an overlay created by Measure (with ‚ÄúAdd to overlay" enabled), or by the particle analyzer, selects the corresponding row in the "Results" table.
  - ImageJ displays a "Delete Points?" dialog before deleting a multi-point selection with counters.
  - Thanks to "zzyzyman", fixed a bug that caused ImageJ to fail to open odd-width RGB AVI files.
  - Thanks to Merijn van Erp, fixed a bug that caused the CurveFitter.getSortedFitList() method to throw an exception.
  - Thanks to Kees Straatman and Bill Christens-Barry, fixed a bug in the macro interpreter that caused it to not detect a missing '[' after an array variable.
  - Thanks to Mike, fixed a 1.52b regression that caused the AVI Reader to fail with a "Required item ‚Äò00ix‚Äô not found" error.
  - Thanks to Curtis Rueden, fixed a 1.51t regression that caused errors in headless mode macros to throw a HeadlessException.
  - Thanks to 'cortig' and Curtis Rueden, fixed a 1.52b regression that caused the "Apply" option of the Image>Adjust>Threshold command to not behave as expected with 16 and 32 bit images.
- 1.52b 6 May 2018
  - Changed "Random" to "Noise" in the "Fill with:" choice of the File>New>Image dialog box.
  - Thanks to Christian Evenhuis, fixed a bug with the Edit>Selection>Line to Area command that caused the resulting area selection to translated if the source was a polyline or freeline selection less than 5 pixels wide.
  - Added the IJ.javaVersion() method.
  - Thanks to Fred Damen, fixed bugs that caused the Image>Stacks>Tools>Concatenate command to sometimes not work as expected.
  - Thanks to Aryeh Weiss and Michael Schmid, worked around a Linux problem with large images not showing at low magnification.
  - Thanks to Fred Damen, fixed bugs that sometimes caused slices labels of single slice stacks to be lost.
  - Thanks to BrainPatcher and Stefan Helfrich, fixed a bug that caused the ROI Manager's "Multi Measure" command to not work correctly with point selections.
  - Thanks to "zzyzyman", fixed a bug that caused ImageJ to fail to open AVI files that used the 'indx'/'ix00' indexing schema.
  - Thanks to Moses, fixed a 1.52a regression that caused row labels to be omitted from tables created by the ROI Manager's "Multi Measure" command.
  - Thanks to Jerome Mutterer, fixed a 1.52a regression that caused imported Results tables to be displayed without row numbers.
- 1.52a 23 April 2018
  - Thanks to Michael Schmid, added Apply Macro commands to the Edit and contextual (right click pop-up) menus of table windows. Also added the ResultsTable.applyMacro() method (JavaScript example).
  - Thanks to Ron DeSpain, tables created by the Image>Overlay>List Elements command can be renamed "Results" and the values accessed using the getResults() and getStringResult() macro functions.
  - Removed the obsolete Plugins>New>Table command. Macros that use this command will continue to work.
  - Thanks to Michael Kaul, added an optional 5th argument ('stepSize') to the Dialog.addSlider() macro function (example).
  - Thanks to Gabriel Landini, on Linux, added the ‚ÄúCancel button on right‚Äù option to the Edit>Options>Appearance dialog box.
  - The "showRowNumbers" property of the ResultsTable class now defaults to 'false'.
  - Thanks to Adrian Daerr, when importing ".raw" files with dimensions encoded in the name (e.g. "myfile-640x480.raw"), the byte order is set to big-endian if the name ends in "be.raw" and to little-endian if the name ends in "le.raw".
  - Thanks to Arttu Miettinen, imported ".raw" files with dimensions encoded in the name can have a width and/or height less than 10.
  - Thanks to Stein Rorvik, added toScaled(x,y,z) and toUnscaled(x,y,z) macro functions.
  - Added 20 macro functions that work with tables. They operate on the current (frontmost) table or an optional title argument can be provided (e.g., Table.size("My Table")). Examples: Sine/Cosine Tables, Rearrange Table and Access Tables.
    - Table.create() - opens a new table
    - Table.reset() - resets (clears) the table
    - Table.size() - number of rows in the table
    - Table.title() - title of the current table
    - Table.headings() - column headings as a tab-delimited string
    - Table.get(columnName, rowIndex) - returns a numeric value
    - Table.getColumn(columnName) - returns a column as an array
    - Table.getString(columnName, rowIndex) - returns a string value
    - Table.set(columnName, rowIndex, value) - sets numeric or string value
    - Table.setColumn(columnName, array) - sets an array as a column
    - Table.update() - updates table window
    - Table.applyMacro(macro) - applies macro code to table
    - Table.rename(title1, title2) - renames a table
    - Table.save(filePath) - saves the table
    - Table.open(filePath) - opens a table
    - Table.deleteRows(index1, index2) - deletes specified rows
    - Table.renameColumn(oldName, newName) - renames a column
    - Table.deleteColumn(columnName) - deletes specified column
    - Table.showRowNumbers(boolean) - enable/disable row numbers
    - Table.showArrays(titleAndOptions, array1, array2, ...) - displays arrays in a table (like Array.show)
  - Thanks to Trevor Joyce and A Schain, added the macro-callable RoiManager.getIndexesAsString() method.
  - Thanks to Michael Schmid, added the Tools.copyFile(path1,path2) method.
  - Thanks to Salim Kanoun, added the RoiManager.setRoi(roi,index) and Overlay.set(roi,index) methods.
  - Thanks to Fred Damen, fixed a bug that caused the SubHyperstackMaker.makeSubhyperstack() method to not work when extracting a single frame.
  - Thanks to Fred Damen and Michael Schmid, fixed a curve fitter bug that could cause a NullPointerException.
  - Thanks to Norbert Vischer, fixed a bug that caused the File.copy() macro function to not preserve the modification date.
  - Thanks to Philippe Carl, fixed a bug that caused the Image>Hyperstacks>Reduce Dimensionality command to not preserve the "Info" image property.
  - Thanks to Jan Eglinger, fixed bugs that caused the roiManager("open",path) macro function to ignore the roi name and roiManager("save",path) not to be recorded when 'path' ended in ".roi".
  - Thanks to Norbert Vischer, fixed a bug that caused the Image Calculator to not correctly calculate the result when the operation is MULTIPLY or DIVIDE, the 1st image is 8 or 16 bit, the 2nd image is 32 bit and "32-bit result" is unchecked.
  - Thanks to Mark Rivers, fixed a bug that caused ImageJ to not correctly open some uncompressed planar RGB TIFFs.
  - Fixed a 1.51s regression that caused statistical calculations on small 16-bit images or selections to be much slower.
  - Thanks to Michael Schmid, fixed a 1.51o regression that caused the particle analyzer to hang when processong 32-bit images.
  Home