Version history for ImageJ
<<Back to software description
Changes for v1.52o - v1.52s
- Thanks to 'LPUoO', added the Plugins>Utilities>Commands command, which opens a list of commonly and recently used commands.
- By default, image windows now open just below the "ImageJ" window.
- Thanks to Norbert Vischer, adding an exclamation mark to showStatus() messages avoids status bar flicker (example).
- Thanks to Michael Schmid, the Process>Filters>Convolve dialog displays feedback on the kernel as it is modified.
- Added the Macros>Set as Repeat Command command to the macro editor. After running this command, the selected macro code will run each time you press 'r', the shortcut for the Process>Repeat Command command.
- Thanks to Jerome Mutterer, added a "Splash Screen" code choice to the Edit>Options>Startup dialog.
- Changed the shortcut for Process>Repeat Command to 'r' and the shortcut for File>Revert to shift-r.
- Added a "Reuse 'FFT of...' window" option to the Process>FFT>FFT Options dialog.
- Thanks to Peter Haub, chroma subsampling is disabled when saving in JPEG format if the Quality setting (Edit>Options>Input/Output) is 90 or higher, resulting in higher quality images but larger file sizes.
- Thanks to Karen Collins, improved the FITS Writer.
- Added the Help>Examples>JavaScript>JPEG Quality Plot example.
- Removed the obsolete "Draw grid lines" option from the Edit>Options>Plot dialog.
- Thanks to Michael Schmid, the ImagePlus.updateAndDraw() method adds a scroll bar to the image window if the stack size has changed to greater than one.
- Thanks to Stein Rorvik, added the File.getDefaultDir, File.setDefaultDir(path), String.trim(string) and String.join(array) macro functions.
- Thanks to Peter Haub, added the JpegWriter.disableChromaSubsampling() method (example script).
- Added the ImageProcessor.setFontSize() and Plot.setFontSize() methods.
- Thanks to 'kefe' and Herbie, fixed a bug that caused the Stack to Images command to use slice labels as image titles even when they contained "/", "\" or ":" characters.
- Thanks to 'sudgy' and Jan Eglinger, fixed a bug the caused iteration over the points contained in an ROI to throw an exception for rectangular ROIs.
- Thanks to Norbert Vischer, fixed a bug that caused the options dialogs for the Rounded Rectangle, Multi-point and Arrow tools to generate "Duplicate keyword" errors when the Recorder was running.
- Thanks to Peter Haub, fixed a bug that caused the Image Calculator to not work as expected with RGB images when using the "Difference" operator and the "32-bit (float) result" option was enabled.
- Fixed a bug that caused the "Font size" setting in the Edit>Options>Plots dialog to be ignored.
- Thanks to Stein Rorvik, fixed a bug that caused the run("Calibration Bar...",optons) macro function to ignore calls to setOption("AntialiasedText",boolean).
- Thanks go Sethur, worked around a Windows 10 and OpenJDK bug that caused the "thumb" on scrollbars to be hard to see.
- Thanks to Stein Rorvik, fixed a bug that caused the Analyze>Set Scale command to not be correctly recorded.
- Thanks to Sethur, fixed a bug that caused the Image>Stacks>Tools>Substack Maker command to not carry over the calibration of hyperstacks.
- Thanks to Sethur, fixed bugs that caused the DICOM reader to not correctly open multi-frame DICOMs, and 16-bit signed DICOMs, with RescaleSlope=1 and RescaleIntercept!=0.
- Thanks to Stein Rorvik, fixed a macro interpreter bug that prevented array functions like newArray() and split() from being used as arguments to user-defined functions.
- Thanks to Stein Rorvik, fixed a bug that caused the WIndow menu to not be updated when saving a table.
- Thanks to Stein Rorvik, fixed a bug that caused the Image>Transform>Translate command to ignore overlays.
- Thanks to Stein Rorvik, fixed a bug that caused right justified text in overlays to not be translated correctly.
- Thanks to Stein Rorvik, worked around a Java bug that caused the OpenDialog.setDefaultDirectory(path) method to sometimes not work as expected on Windows when the path used "/" separators.
- Thanks to Stein Rorvik, fixed a bug that caused macros calling open("") to not be aborted when the user clicked "Cancel" in the file open dialog and "Use JFileChooser to open/save" was enabled in the Edit>Options>Input/Output dialog box.
- Thanks to Nicolas De Francesco, fixed a bug that caused Process>FFT>Custom Filter to only process the current stack slice even though "Process entire stack" was checked in the dialog box.
Changes for v1.52n - v1.52o
- Added the Help>Examples>Macro>Curve Fitting and Help>Examples>JavaScript>Curve Fitting examples.
- Thanks to Tiago Ferreira, stack and hyperstack scrollbars now apply the Edit>Options>Appearance "GUI scale".
- Thanks to 'mountain_man', tables can be sorted alphabetically.
- Thanks to Neil Switz, the Process>FFT>Inverse FFT command displays a warning message if the "FFT of ..." image has been modified but no pixels have been set to 0 or 255.
- Thanks to Stein Rorvik, copies of IJ_Props.txt and/or IJ_Prefs.txt in the ImageJ folder override the corresponding files in the default locations.
- Thanks to Stein Rorvik, the Table.update macro function is called automatically when a macro finsihes and the Table.setSelection(), Table.getSelectionStart and Table.getSelectionEnd functions no longer require that a title be specified.
- Thanks to Philippe Carl, the isKeyDown() and setKeyDown() macro functions now support the control key (example).
- Thanks to Stein Rorvik, the setColor() and setLineWidth() macro functions no longer abort the macro if no image is open.
- Thanks to Sian Culley, removed "Bridge" and "Lena" from the File>Open Samples menu. Macros and scripts that use these images will continue to work.
- Thanks to Stein Rorvik, the run("Apply LUT") macro function no longer shows an error message with images that have a display range of 0-255.
- Thanks to NorbertVischer, Philippe Carl and Stein Rorvik, added the Array.deleteValue() and Array.deleteIndex() macro functions (example).
- Thanks to Stein Rorvik, added the Table.setLocationAndSize() macro function.
- Added the ImagePlus.crop(options) method, where 'options' can be can be "stack", "slice" or a range (e.g., "20-30").
- Thanks to Stein Rorvik, fixed a bug the caused macros using a function key shortcut to not work if the shift key was down.
- Thanks to Salim Kanoun, fixed a bug in the DICOM reader that caused it to sometimes not correctly open PT DICOM stacks.
- Thanks to Stein Rorvik, fixed a rounding error with setMinAndMax() on some density calibrated 8-bit images.
- Fixed non-macro recording of the Image>Duplicate command.
- Thanks to Norbert Vischer, fixed a bug that caused the doWand(x,y,tolerance,"Smooth") macro function to cause the macro language's &var variable passing method to fail.
- Thanks to Jan Eglinger, fixed a bug that caused log histogram plots to be malformed if the line width was set to greater than 1.
- Thanks to Stein Rorvik, fixed a bug that caused the Table.title and getInfo("window.title") macro functions to sometimes not work with custom tables.
- Thanks to Stein Rorvik, fixed bugs related to saving and opening empty tables.
- Thanks to Norbert Vischer, fixed a bug that caused the Mac menu bar to disappear when activating the Channels, ColorPicker, ContrastAdjuster and ThresholdAdjuster dialogs.
- Thanks to Norbert Vischer, fixed a bug that caused the "Save changes?" dialog to not be the front-most window when quitting ImageJ.
- Thanks to Tihamer, fixed a bug that caused the CurveFitter.getResultString() method to fail if there was a fitting error.
- Thanks to Ellen Arena, fixed 1.52m regression that caused the Edit>Selection>Create Selection command to not work as expected with non-thresholded images.
- Thanks to Laurent Thomas, fixed a 1.52n regression that caused the MaximumFinder.getMaxima() method to always return 0 points.
- Thanks to Gabriel Landini, fixed a regression that could cause the ImagePlus.setSlice() method to throw an exception.
Changes for v1.52k - v1.52n
- Thanks to Ellen T Arena, fixed a 1.52m regression that caused the Edit>Selection>Create Mask command to not preserve spatial calibration.
- 1.52m 20 March 2019
- ROI improvements thanks to Michael Schmid, including more accurate Roi.contains, better ShapeRoi filling, improved ShapeRoi.clone(), improved Roi Manager Split, better ShapeRoi length calculation, more accurate perimeter for ovals and rounded rectangles, more accurate MinFeret, removed point selection 32k slice limit, ability to press ESC to abort creation of polygonROI, and addition of Roi.getFeretPoints() macro function (example).
- Thanks to Tiago Ferreira, the "GUI scale (0.5-3.0)" setting in the Edit>Options>Appearance dialog is now applied to almost all remaining dialogs and widgets, including the Histogram and Plot Windows and the Threshold widget.
- Thanks to Norbert Vischer, added the File>Show Folder submenu.
- Thanks to Norbert Vischer and Michael Schmid, changed "Noise Tolerance" to "Prominence" and added a "Strict" option to the Process>Find Maxima dialog.
- Thanks to Hidenao Yamada, the File>Import>Raw command now uses long instead of int for the gap between images.
- Thanks to Stein Rorvik, Image>Stacks>Tools>Set Label and Image>Stacks>Tools>Remove Slice Labels work with single images.
- On macOS, the Help>Update ImageJ command displays a message explaining how to work around Path Randomization if the ImageJ home directory is read-only and the file path starts with "/private/var/folders/".
- Thanks to Christophe Leterrier, the File>Import>Image Sequence command now always sorts the files names on macOS.
- The File>Save As>Image Sequence command saves single line slice labels when saving in TIFF format.
- Thanks to Norbert Vischer, the File>Revert command now works with virtual stacks.
- Thanks to Alicia Daeden, the makeLine() and makePolygon() macro functions no longer have a 200 point limit.
- Thanks to Steve Fallows, File>Import>Raw only gets .raw file parameters from the filename when it uses 'x' delimiters.
- Thanks to Gilles Carpentier, added the is("line") and is("area") macro functions.
- Thanks to Albert Cardona, added the ImagePlus.updateVirtualSlice() method.
- Thanks to Michael Kaul, added the Plot.update() method.
- Thanks to 'cyrilturies' and Jan Eglinger, fixed a bug that caused Results table labels to not be displayed for line measurements if no measurement options were enabled in Analyze>Set Measurements.
- Thanks to Stein Rorvik, fixed rounding errors in the Image>Scale command.
- Thanks to Norbert Vischer, fixed a bug that caused the toolbar to be corrupted when opening an overlay containing multi-point selections.
- Thanks to Norbert Vischer, fixed bugs that caused numerous "//setTool()" statements to be recorded when opening ROI sets or overlays that contain multi-point selections.
- Fixed a bug that caused multi-point selections to lose their 'pointBeforeDeleting' property when saved and re-opened.
- Thanks to Michael Schmid, fixed a bug that caused Process>Filters>Gaussian Blur to not be multithread-safe.
- Thanks to Robert Lockwood, fixed a bug that caused the File>Save command to not be correctly recorded.
- Thanks to Albert Cardona, fixed bugs that caused Edit>Selection>Restore Selection, and setting an ROI from the ROI Manager, to not emit an Roi MODIFIED event.
- Thanks to Dr-Frog and Jan Eglinger, fixed a bug that caused the ImageProcessor.fillOutside(Roi) method to modify the Roi passed as the argument.
- Thanks to Teresa Haider, fixed a bug that sometimes caused Image>Transform>Bin to not correctly display the output image.
- Thanks to Stein Rorvik, fixed a 1.52d regression that caused File>Import>Image Sequence to use the image label (if present) as the slice label instead of the filename.
- Thanks to Gilles Carpentier, fixed a 1.52k regression that caused the particle analyzer to unexpectedly create composite ROIs.
- Thanks to Jan Eglinger, fixed a 1.52i regression that caused macro string expressions like "s"+a[i]*n to generate an error.
Changes for v1.52i - v1.52j
- Added the Plugins>Macros>Interactive Interpreter command (shortcut: "j"), which enables interactive editing and running of macro and JavaScript code in an editor window (example). Type "js" in to switch the language to JavaScript.
- ◦ 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>Options>DICOM dialog box.
- ◦ 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() statementsare now reported using a "Macro Error" dialog that displaysthe 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, dragging in XZ and YZ views to not work, missing 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 and arrow selections using the arrow keys.
Changes for v1.52h - v1.52i
- 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 DuplicateAll() (the Duplicate method crops if there is an ROI) and 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.
- Bob Goldstein updated the ImageJ tutorial (PDF) he wrote for Make Magazine in 2011.
- Jerome Mutterer updated the Magic Montage toolset to version 1.6:
- Worked around a v1.52 regression that caused the montage to not be drawn correctly after it was expanded by dragging outside the existing montage with the Montage Shuffler Tool.
- Added a "?" button that points to the wiki page.
- Panel labels are now drawn on an overlay.
- Added Hide Overlay, Show Overlay, Remove Overlay and Copy to System commands to the contextual (right-click) menu.
- Upgrade by downloading Magic Montage.ijm into the ImageJ/macros/toolsets folder or install using the Image>Stacks>Tools>Magic Montage Tools command.
- Jacqueline Ross shared the documentation from the 28th New Zealand Conference on Microscopy.
- Aleksandr Mironov contributed the Buffon Needles macro, which demonstrates the Buffon's Needle Problem.
Changes for v1.52g - v1.52h
- 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.
Changes for v1.52f - v1.52g
- 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 "\".
Changes for v1.52e - v1.52f
- 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.
Changes for v1.52d - v1.52e
- 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.
Changes for v1.52b - v1.52d
- 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.
Changes for v1.51w - v1.52b
- 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.
Changes for v1.51v - v1.51w
- Thanks to Stein Rorvik, added the setOption("InvertY",boolean) and is("InvertY”) macro functions.
- Thanks to Pradeep Rajasekhar and Jan Eglinger, fixed a 1.51v regression that caused the ‘OK’ and ‘Cancel’ buttons in the Bioformats importer dialog box to be missing.