Module ij
Package ij

Class IJ

java.lang.Object
ij.IJ

public class IJ
extends java.lang.Object
This class consists of static utility methods.
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static interface  IJ.ExceptionHandler  
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static int ALL_KEYS  
    static char angstromSymbol  
    static int CANCELED  
    static int COLOR
    Image display modes
    static int COMPOSITE
    Image display modes
    static boolean debugMode
    Use setDebugMode(boolean) to enable/disable debug mode.
    static char degreeSymbol  
    static java.awt.Font font10
    SansSerif, plain, 10-point font
    static java.awt.Font font12
    SansSerif, plain, 12-point font
    static int GRAYSCALE
    Image display modes
    static boolean hideProcessStackDialog  
    static char micronSymbol  
    static java.lang.String URL  
  • Constructor Summary

    Constructors 
    Constructor Description
    IJ()  
  • Method Summary

    Modifier and Type Method Description
    static void addEventListener​(IJEventListener listener)  
    static java.lang.String addSeparator​(java.lang.String path)  
    static boolean altKeyDown()
    Returns true if the alt key is down.
    static java.lang.String append​(java.lang.String string, java.lang.String path)
    Appends a string to the end of a file.
    static void beep()
    Emits an audio beep.
    static boolean controlKeyDown()
    Returns true if the control key is down.
    static ImagePlus createHyperStack​(java.lang.String title, int width, int height, int channels, int slices, int frames, int bitdepth)
    Creates a new hyperstack.
    static ImagePlus createImage​(java.lang.String title, int width, int height, int depth, int bitdepth)
    Creates a new image.
    static ImagePlus createImage​(java.lang.String title, java.lang.String type, int width, int height, int depth)
    Creates a new imagePlus.
    static ImagePlus createImage​(java.lang.String title, java.lang.String type, int width, int height, int channels, int slices, int frames)
    Creates a new hyperstack.
    static long currentMemory()
    Returns the amount of memory currently being used by ImageJ.
    static java.lang.String d2s​(double n)
    Converts a number to a formatted string using 2 digits to the right of the decimal point.
    static java.lang.String d2s​(double n, int decimalPlaces)
    Converts a number to a rounded formatted string.
    static java.lang.String d2s​(double x, int significantDigits, int maxDigits)
    Converts a number to a rounded formatted string.
    static void deleteRows​(int row1, int row2)
    Deletes 'row1' through 'row2' of the "Results" window, where 'row1' and 'row2' must be in the range 0-Analyzer.getCounter()-1.
    static void doCommand​(ImagePlus imp, java.lang.String command)
    Runs a menu command on a separete thread, using the specified image.
    static void doCommand​(java.lang.String command)
    Runs a menu command on a separete thread and returns immediately.
    static int doWand​(int x, int y)
    Equivalent to clicking on the current image at (x,y) with the wand tool.
    static int doWand​(int x, int y, double tolerance, java.lang.String mode)
    Traces the boundary of the area with pixel values within 'tolerance' of the value of the pixel at the starting location.
    static int doWand​(ImagePlus img, int x, int y, double tolerance, java.lang.String mode)
    This version of doWand adds an ImagePlus argument.
    static void error​(java.lang.String msg)
    Displays a message in a dialog box titled "ImageJ".
    static void error​(java.lang.String title, java.lang.String msg)
    Displays a message in a dialog box with the specified title.
    static boolean escapePressed()
    Returns true if the Esc key was pressed since the last ImageJ command started to execute or since resetEscape() was called.
    static void exit()
    Aborts any currently running JavaScript, or use IJ.error(string) to abort a JavaScript with a message.
    static java.lang.String freeMemory()
    Returns a string something like "64K of 256MB (25%)" that shows how much of the available memory is in use.
    static java.applet.Applet getApplet()
    Returns the Applet that created this ImageJ or null if running as an application.
    static java.lang.ClassLoader getClassLoader()
    Returns the class loader ImageJ uses to run plugins or the system class loader if Menus.getPlugInsPath() returns null.
    static java.lang.String getDir​(java.lang.String title)
    Alias for getDirectory().
    static java.lang.String getDirectory​(java.lang.String title)
    Returns the path to the specified directory if title is "home" ("user.home"), "downloads", "startup", "imagej" (ImageJ directory), "plugins", "macros", "luts", "temp", "current", "default", "image" (directory active image was loaded from), "file" (directory most recently used to open or save a file) or "cwd" (current working directory), otherwise displays a dialog and returns the path to the directory selected by the user.
    static java.lang.String getErrorMessage()
    Returns the last error message written by IJ.error() or null if there was no error since the last time this method was called.
    static java.lang.String getFilePath​(java.lang.String dialogTitle)
    Displays an open file dialog and returns the path to the choosen file, or returns null if the dialog is canceled.
    static java.lang.String getFullVersion()
    Returns the ImageJ version and build number as a String, for example "1.46n05", or 1.46n99 if there is no build number.
    static ImagePlus getImage()
    Returns a reference to the active image, or displays an error message and aborts the plugin or macro if no images are open.
    static ImagePlus getImage​(Interpreter interpreter)
    The macro interpreter uses this method to call getImage().
    static ImageJ getInstance()
    Returns a reference to the "ImageJ" frame.
    static java.lang.String getLog()
    Returns the contents of the Log window or null if the Log window is not open.
    static java.lang.String[] getLuts()
    Returns, as an array of strings, a list of the LUTs in the Image/Lookup Tables menu.
    static double getNumber​(java.lang.String prompt, double defaultValue)
    Allows the user to enter a number in a dialog box.
    static ImageProcessor getProcessor()
    Returns the active image or stack slice as an ImageProcessor, or displays an error message and aborts the plugin or macro if no images are open.
    static java.lang.Object getProperty​(java.lang.String key)
    Returns the object in IJ.properties associated with 'key', or null if 'key' is not found.
    static java.awt.Dimension getScreenSize()
    Returns the size, in pixels, of the primary display.
    static java.lang.String getString​(java.lang.String prompt, java.lang.String defaultString)
    Allows the user to enter a string in a dialog box.
    static TextPanel getTextPanel()
    Returns a reference to the "Results" window TextPanel.
    static java.lang.String getToolName()
    Returns the name of the current tool.
    static double getValue​(ImagePlus imp, java.lang.String measurement)
    Returns a measurement result, where 'measurement' is "Area", "Mean", "StdDev", "Mode", "Min", "Max", "X", "Y", "XM", "YM", "Perim.", "BX", "BY", "Width", "Height", "Major", "Minor", "Angle", "Circ.", "Feret", "IntDen", "Median", "Skew", "Kurt", "%Area", "RawIntDen", "Ch", "Slice", "Frame", "FeretX", "FeretY", "FeretAngle", "MinFeret", "AR", "Round", "Solidity", "MinThr" or "MaxThr".
    static java.lang.String getVersion()
    Returns the ImageJ version number as a string.
    static void handleException​(java.lang.Throwable e)
    Displays a stack trace.
    static boolean is64Bit()
    Returns true if ImageJ is running a 64-bit version of Java.
    static boolean isJava14()
    Always returns true.
    static boolean isJava15()
    Always returns true.
    static boolean isJava16()
    Returns true if ImageJ is running on a Java 1.6 or greater JVM.
    static boolean isJava17()
    Returns true if ImageJ is running on a Java 1.7 or greater JVM.
    static boolean isJava18()
    Returns true if ImageJ is running on a Java 1.8 or greater JVM.
    static boolean isJava19()
    Returns true if ImageJ is running on a Java 1.9 or greater JVM.
    static boolean isJava2()
    Always returns true.
    static boolean isLinux()
    Returns true if ImageJ is running on Linux.
    static boolean isMacintosh()
    Returns true if this machine is a Macintosh.
    static boolean isMacOSX()
    Returns true if this machine is a Macintosh running OS X.
    static boolean isMacro()
    Returns true if a macro is running, or if the run(), open() or newImage() method is executing.
    static boolean isResultsWindow()
    Returns true if the "Results" window is open.
    static boolean isVista()
    Obsolete; always returns false.
    static boolean isWindows()
    Returns true if this machine is running Windows.
    static int javaVersion()
    Returns the Java version (6, 7, 8, 9, 10, etc.).
    static void log​(java.lang.String s)  
    static boolean macroRunning()
    Returns true if the run(), open() or newImage() method is executing.
    static void makeLine​(double x1, double y1, double x2, double y2)
    Creates a straight line selection using floating point coordinates.
    static void makeLine​(int x1, int y1, int x2, int y2)
    Creates a straight line selection.
    static void makeOval​(double x, double y, double width, double height)
    Creates an subpixel resolution oval selection.
    static void makeOval​(int x, int y, int width, int height)
    Creates an oval selection.
    static void makePoint​(double x, double y)
    Creates a point selection using floating point coordinates.
    static void makePoint​(int x, int y)
    Creates a point selection using integer coordinates..
    static void makeRectangle​(double x, double y, double width, double height)
    Creates a subpixel resolution rectangular selection.
    static void makeRectangle​(int x, int y, int width, int height)
    Creates a rectangular selection.
    static long maxMemory()
    Returns the maximum amount of memory available to ImageJ or zero if ImageJ is unable to determine this limit.
    static void newImage​(java.lang.String title, java.lang.String type, int width, int height, int depth)
    Opens a new image.
    static void noImage()
    Displays a "no images are open" dialog box.
    static void notifyEventListeners​(int eventID)  
    static void open()
    Displays a file open dialog box and then opens the tiff, dicom, fits, pgm, jpeg, bmp, gif, lut, roi, or text file selected by the user.
    static void open​(java.lang.String path)
    Opens and displays a tiff, dicom, fits, pgm, jpeg, bmp, gif, lut, roi, or text file.
    static void open​(java.lang.String path, int n)
    Opens and displays the nth image in the specified tiff stack.
    static java.nio.ByteBuffer openAsByteBuffer​(java.lang.String path)  
    static java.lang.String openAsString​(java.lang.String path)
    Opens a text file as a string.
    static ImagePlus openImage()
    Opens an image using a file open dialog and returns it as an ImagePlus object.
    static ImagePlus openImage​(java.lang.String path)
    Opens the specified file as a tiff, bmp, dicom, fits, pgm, gif, jpeg or text image and returns an ImagePlus object if successful.
    static ImagePlus openImage​(java.lang.String path, int n)
    Opens the nth image of the specified tiff stack.
    static java.lang.String openUrlAsString​(java.lang.String url)
    Opens a URL and returns the contents as a string.
    static ImagePlus openVirtual​(java.lang.String path)
    Opens the specified tiff file as a virtual stack.
    static void outOfMemory​(java.lang.String name)
    Displays an "out of memory" message to the "Log" window.
    static OvalRoi OvalRoi​(double x, double y, double width, double height)
    Creates an OvalRoi.
    static java.lang.String pad​(int n, int digits)
    Pad 'n' with leading zeros to the specified number of digits.
    static java.lang.String pad​(java.lang.String s, int digits)
    Pad 's' with leading zeros to the specified number of digits.
    static void protectStatusBar​(boolean protect)  
    static void redirectErrorMessages()
    Causes IJ.error() output to be temporarily redirected to the "Log" window.
    static void redirectErrorMessages​(boolean redirect)
    Set 'true' and IJ.error() output will be temporarily redirected to the "Log" window.
    static boolean redirectingErrorMessages()
    Returns the state of the 'redirectErrorMessages' flag, which is set by File/Import/Image Sequence.
    static void register​(java.lang.Class c)
    Adds the specified class to a Vector to keep it from being garbage collected, which would cause the classes static fields to be reset.
    static void removeEventListener​(IJEventListener listener)  
    static void renameResults​(java.lang.String title)
    Renames a results window.
    static void renameResults​(java.lang.String oldTitle, java.lang.String newTitle)
    Changes the name of a table window from 'oldTitle' to 'newTitle'.
    static void resetClassLoader()  
    static void resetEscape()
    This method sets the Esc key to the "up" position.
    static void resetMinAndMax()
    Resets the minimum and maximum displayed pixel values of the current image to be the same as the min and max pixel values.
    static void resetMinAndMax​(ImagePlus img)
    Resets the minimum and maximum displayed pixel values of the specified image to be the same as the min and max pixel values.
    static void resetThreshold()
    Disables thresholding on the current image.
    static void resetThreshold​(ImagePlus img)
    Disables thresholding on the specified image.
    static Roi Roi​(double x, double y, double width, double height)
    Creates an Roi.
    static void run​(ImagePlus imp, java.lang.String command, java.lang.String options)
    Runs an ImageJ command using the specified image and options.
    static void run​(Interpreter interpreter, java.lang.String command, java.lang.String options)
    The macro interpreter uses this method to run commands.
    static void run​(java.lang.String command)
    Runs an ImageJ command.
    static void run​(java.lang.String command, java.lang.String options)
    Runs an ImageJ command, with options that are passed to the GenericDialog and OpenDialog classes.
    static java.lang.String runMacro​(java.lang.String macro)
    Runs the macro contained in the string macro on the current thread.
    static java.lang.String runMacro​(java.lang.String macro, java.lang.String arg)
    Runs the macro contained in the string macro on the current thread.
    static java.lang.String runMacroFile​(java.lang.String name)
    Runs the specified macro file.
    static java.lang.String runMacroFile​(java.lang.String name, java.lang.String arg)
    Runs the specified macro or script file in the current thread.
    static java.lang.Object runPlugIn​(ImagePlus imp, java.lang.String className, java.lang.String arg)
    Runs the specified plugin using the specified image.
    static java.lang.Object runPlugIn​(java.lang.String className, java.lang.String arg)
    Runs the specified plugin and returns a reference to it.
    static java.lang.Object runPlugIn​(java.lang.String commandName, java.lang.String className, java.lang.String arg)
    Runs the specified plugin and returns a reference to it.
    static void save​(ImagePlus imp, java.lang.String path)
    Saves the specified image, lookup table or selection to the specified file path.
    static void save​(java.lang.String path)
    Saves the current image, lookup table, selection or text window to the specified file path.
    static void saveAs​(ImagePlus imp, java.lang.String format, java.lang.String path)  
    static void saveAs​(java.lang.String format, java.lang.String path)  
    static boolean saveAsTiff​(ImagePlus imp, java.lang.String path)
    Saves the specified image in TIFF format.
    static java.lang.String saveString​(java.lang.String string, java.lang.String path)
    Saves a string as a file.
    static void selectWindow​(int id)
    For IDs less than zero, activates the image with the specified ID.
    static void selectWindow​(java.lang.String title)
    Activates the window with the specified title.
    static void setAutoThreshold​(ImagePlus imp, java.lang.String method)  
    static void setBackgroundColor​(int red, int green, int blue)
    Sets the background color.
    static void setColumnHeadings​(java.lang.String headings)
    Clears the "Results" window and sets the column headings to those in the tab-delimited 'headings' String.
    static void setDebugMode​(boolean b)
    Enable/disable debug mode.
    static void setExceptionHandler​(IJ.ExceptionHandler handler)
    Installs a custom exception handler that overrides the handleException() method.
    static void setForegroundColor​(int red, int green, int blue)
    Sets the foreground color.
    static void setInputEvent​(java.awt.event.InputEvent e)  
    static void setKeyDown​(int key)  
    static void setKeyUp​(int key)  
    static void setMinAndMax​(double min, double max)
    Sets the display range (minimum and maximum displayed pixel values) of the current image.
    static void setMinAndMax​(double min, double max, int channels)
    Sets the minimum and maximum displayed pixel values on the specified RGB channels, where 4=red, 2=green and 1=blue.
    static void setMinAndMax​(ImagePlus img, double min, double max)
    Sets the display range (minimum and maximum displayed pixel values) of the specified image.
    static void setPasteMode​(java.lang.String mode)
    Sets the transfer mode used by the Edit/Paste command, where mode is "Copy", "Blend", "Average", "Difference", "Transparent", "Transparent2", "AND", "OR", "XOR", "Add", "Subtract", "Multiply", or "Divide".
    static void setProperty​(java.lang.String key, java.lang.Object value)
    Adds a key-value pair to IJ.properties.
    static void setRawThreshold​(ImagePlus img, double lowerThreshold, double upperThreshold, java.lang.String displayMode)
    This is a version of setThreshold() that always uses raw (uncalibrated) values in the range 0-255 for 8-bit images and 0-65535 for 16-bit images.
    static void setSlice​(int slice)
    Switches to the specified stack slice, where 1
    static void setTextPanel​(TextPanel tp)
    TextWindow calls this method with a null argument when the "Results" window is closed.
    static void setThreshold​(double lowerThreshold, double upperThresold)
    Sets the lower and upper threshold levels and displays the image using red to highlight thresholded pixels.
    static void setThreshold​(double lowerThreshold, double upperThreshold, java.lang.String displayMode)
    Sets the lower and upper threshold levels and displays the image using the specified displayMode ("Red", "Black & White", "Over/Under" or "No Update").
    static void setThreshold​(ImagePlus img, double lowerThreshold, double upperThreshold)
    Sets the lower and upper threshold levels of the specified image.
    static void setThreshold​(ImagePlus img, double lowerThreshold, double upperThreshold, java.lang.String displayMode)
    Sets the lower and upper threshold levels of the specified image and updates the display using the specified displayMode ("Red", "Black & White", "Over/Under" or "No Update").
    static void setTool​(int id)
    Switches to the specified tool, where id = Toolbar.RECTANGLE (0), Toolbar.OVAL (1), etc.
    static boolean setTool​(java.lang.String name)
    Switches to the specified tool, where 'name' is "rect", "elliptical", "brush", etc.
    static int setupDialog​(ImagePlus imp, int flags)
    Displays a "Process all images?" dialog.
    static boolean shiftKeyDown()
    Returns true if the shift key is down.
    static void showMessage​(java.lang.String msg)
    Displays a message in a dialog box titled "Message".
    static void showMessage​(java.lang.String title, java.lang.String msg)
    Displays a message in a dialog box with the specified title.
    static boolean showMessageWithCancel​(java.lang.String title, java.lang.String msg)
    Displays a message in a dialog box with the specified title.
    static void showProgress​(double progress)
    Updates the progress bar, where 0
    static void showProgress​(int currentIndex, int finalIndex)
    Updates the progress bar, where the length of the bar is set to (currentValue+1)/finalValue of the maximum bar length.
    static void showStatus​(java.lang.String s)
    Displays a message in the ImageJ status bar.
    static void showStatus​(java.lang.String message, java.lang.String options)
    Displays a message in the status bar and flashes either the status bar or the active image.
    See: http://wsr.imagej.net/macros/FlashingStatusMessages.txt
    static void showTime​(ImagePlus imp, long start, java.lang.String str)  
    static void showTime​(ImagePlus imp, long start, java.lang.String str, int nslices)  
    static boolean spaceBarDown()
    Returns true if the space bar is down.
    static boolean statusBarProtected()  
    static int stringToPasteMode​(java.lang.String mode)  
    static void suppressPluginNotFoundError()
    Temporarily suppress "plugin not found" errors.
    static java.lang.String time​(ImagePlus imp, long startNanoTime)
    Experimental
    static boolean versionLessThan​(java.lang.String version)
    Displays an error message and returns true if the ImageJ version is less than the one specified.
    static void wait​(int msecs)
    Delays 'msecs' milliseconds.
    static void write​(java.lang.String s)
    Deprecated.
    replaced by IJ.log(), ResultsTable.setResult() and TextWindow.append().

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • IJ

      public IJ()
  • Method Details

    • getInstance

      public static ImageJ getInstance()
      Returns a reference to the "ImageJ" frame.
    • setDebugMode

      public static void setDebugMode​(boolean b)
      Enable/disable debug mode.
    • runMacro

      public static java.lang.String runMacro​(java.lang.String macro)
      Runs the macro contained in the string macro on the current thread. Returns any string value returned by the macro, null if the macro does not return a value, or "[aborted]" if the macro was aborted due to an error. The equivalent macro function is eval().
    • runMacro

      public static java.lang.String runMacro​(java.lang.String macro, java.lang.String arg)
      Runs the macro contained in the string macro on the current thread. The optional string argument can be retrieved in the called macro using the getArgument() macro function. Returns any string value returned by the macro, null if the macro does not return a value, or "[aborted]" if the macro was aborted due to an error.
    • runMacroFile

      public static java.lang.String runMacroFile​(java.lang.String name, java.lang.String arg)
      Runs the specified macro or script file in the current thread. The file is assumed to be in the macros folder unless name is a full path. The optional string argument (arg) can be retrieved in the called macro or script using the getArgument() function. Returns any string value returned by the macro, or null. Scripts always return null. The equivalent macro function is runMacro().
    • runMacroFile

      public static java.lang.String runMacroFile​(java.lang.String name)
      Runs the specified macro file.
    • runPlugIn

      public static java.lang.Object runPlugIn​(ImagePlus imp, java.lang.String className, java.lang.String arg)
      Runs the specified plugin using the specified image.
    • runPlugIn

      public static java.lang.Object runPlugIn​(java.lang.String className, java.lang.String arg)
      Runs the specified plugin and returns a reference to it.
    • runPlugIn

      public static java.lang.Object runPlugIn​(java.lang.String commandName, java.lang.String className, java.lang.String arg)
      Runs the specified plugin and returns a reference to it.
    • doCommand

      public static void doCommand​(java.lang.String command)
      Runs a menu command on a separete thread and returns immediately.
    • doCommand

      public static void doCommand​(ImagePlus imp, java.lang.String command)
      Runs a menu command on a separete thread, using the specified image.
    • run

      public static void run​(java.lang.String command)
      Runs an ImageJ command. Does not return until the command has finished executing. To avoid "image locked", errors, plugins that call this method should implement the PlugIn interface instead of PlugInFilter.
    • run

      public static void run​(java.lang.String command, java.lang.String options)
      Runs an ImageJ command, with options that are passed to the GenericDialog and OpenDialog classes. Does not return until the command has finished executing. To generate run() calls, start the recorder (Plugins/Macro/Record) and run commands from the ImageJ menu bar.
    • run

      public static void run​(Interpreter interpreter, java.lang.String command, java.lang.String options)
      The macro interpreter uses this method to run commands.
    • run

      public static void run​(ImagePlus imp, java.lang.String command, java.lang.String options)
      Runs an ImageJ command using the specified image and options. To generate run() calls, start the recorder (Plugins/Macro/Record) and run commands from the ImageJ menu bar.
    • macroRunning

      public static boolean macroRunning()
      Returns true if the run(), open() or newImage() method is executing.
    • isMacro

      public static boolean isMacro()
      Returns true if a macro is running, or if the run(), open() or newImage() method is executing.
    • getApplet

      public static java.applet.Applet getApplet()
      Returns the Applet that created this ImageJ or null if running as an application.
    • showStatus

      public static void showStatus​(java.lang.String s)
      Displays a message in the ImageJ status bar. If 's' starts with '!', subsequent showStatus() calls in the current thread (without "!" in the message) are suppressed.
    • showStatus

      public static void showStatus​(java.lang.String message, java.lang.String options)
      Displays a message in the status bar and flashes either the status bar or the active image.
      See: http://wsr.imagej.net/macros/FlashingStatusMessages.txt
    • write

      public static void write​(java.lang.String s)
      Deprecated.
      replaced by IJ.log(), ResultsTable.setResult() and TextWindow.append(). There are examples at http://imagej.nih.gov/ij/plugins/sine-cosine.html
    • log

      public static void log​(java.lang.String s)
    • getLog

      public static java.lang.String getLog()
      Returns the contents of the Log window or null if the Log window is not open.
    • setColumnHeadings

      public static void setColumnHeadings​(java.lang.String headings)
      Clears the "Results" window and sets the column headings to those in the tab-delimited 'headings' String. Writes to System.out.println if the "ImageJ" frame is not present.
    • isResultsWindow

      public static boolean isResultsWindow()
      Returns true if the "Results" window is open.
    • renameResults

      public static void renameResults​(java.lang.String title)
      Renames a results window.
    • renameResults

      public static void renameResults​(java.lang.String oldTitle, java.lang.String newTitle)
      Changes the name of a table window from 'oldTitle' to 'newTitle'.
    • deleteRows

      public static void deleteRows​(int row1, int row2)
      Deletes 'row1' through 'row2' of the "Results" window, where 'row1' and 'row2' must be in the range 0-Analyzer.getCounter()-1.
    • getValue

      public static double getValue​(ImagePlus imp, java.lang.String measurement)
      Returns a measurement result, where 'measurement' is "Area", "Mean", "StdDev", "Mode", "Min", "Max", "X", "Y", "XM", "YM", "Perim.", "BX", "BY", "Width", "Height", "Major", "Minor", "Angle", "Circ.", "Feret", "IntDen", "Median", "Skew", "Kurt", "%Area", "RawIntDen", "Ch", "Slice", "Frame", "FeretX", "FeretY", "FeretAngle", "MinFeret", "AR", "Round", "Solidity", "MinThr" or "MaxThr". Add " raw" to the argument to disable calibration, for example IJ.getValue("Mean raw"). Add " limit" to enable the "limit to threshold" option.
    • getTextPanel

      public static TextPanel getTextPanel()
      Returns a reference to the "Results" window TextPanel. Opens the "Results" window if it is currently not open. Returns null if the "ImageJ" window is not open.
    • setTextPanel

      public static void setTextPanel​(TextPanel tp)
      TextWindow calls this method with a null argument when the "Results" window is closed.
    • noImage

      public static void noImage()
      Displays a "no images are open" dialog box.
    • outOfMemory

      public static void outOfMemory​(java.lang.String name)
      Displays an "out of memory" message to the "Log" window.
    • showProgress

      public static void showProgress​(double progress)
      Updates the progress bar, where 0=1.0. The progress bar is updated only if more than 90 ms have passes since the last call. Does nothing if the ImageJ window is not present.
    • showProgress

      public static void showProgress​(int currentIndex, int finalIndex)
      Updates the progress bar, where the length of the bar is set to (currentValue+1)/finalValue of the maximum bar length. The bar is erased if currentValue>=finalValue. The bar is updated only if more than 90 ms have passed since the last call. Displays subordinate progress bars as dots if 'currentIndex' is negative (example: Plugins/Utilities/Benchmark).
    • showMessage

      public static void showMessage​(java.lang.String msg)
      Displays a message in a dialog box titled "Message". Writes the Java console if ImageJ is not present.
    • showMessage

      public static void showMessage​(java.lang.String title, java.lang.String msg)
      Displays a message in a dialog box with the specified title. Displays HTML formatted text if 'msg' starts with "". There are examples at "http://imagej.nih.gov/ij/macros/HtmlDialogDemo.txt". Writes to the Java console if ImageJ is not present.
    • error

      public static void error​(java.lang.String msg)
      Displays a message in a dialog box titled "ImageJ". If a macro or JavaScript is running, it is aborted. Writes to the Java console if the ImageJ window is not present.
    • error

      public static void error​(java.lang.String title, java.lang.String msg)
      Displays a message in a dialog box with the specified title. If a macro or JavaScript is running, it is aborted. Writes to the Java console if the ImageJ window is not present.
    • exit

      public static void exit()
      Aborts any currently running JavaScript, or use IJ.error(string) to abort a JavaScript with a message.
    • getErrorMessage

      public static java.lang.String getErrorMessage()
      Returns the last error message written by IJ.error() or null if there was no error since the last time this method was called.
      See Also:
      error(String)
    • showMessageWithCancel

      public static boolean showMessageWithCancel​(java.lang.String title, java.lang.String msg)
      Displays a message in a dialog box with the specified title. Returns false if the user pressed "Cancel".
    • getNumber

      public static double getNumber​(java.lang.String prompt, double defaultValue)
      Allows the user to enter a number in a dialog box. Returns the value IJ.CANCELED (-2,147,483,648) if the user cancels the dialog box. Returns 'defaultValue' if the user enters an invalid number.
    • getString

      public static java.lang.String getString​(java.lang.String prompt, java.lang.String defaultString)
      Allows the user to enter a string in a dialog box. Returns "" if the user cancels the dialog box.
    • wait

      public static void wait​(int msecs)
      Delays 'msecs' milliseconds.
    • beep

      public static void beep()
      Emits an audio beep.
    • freeMemory

      public static java.lang.String freeMemory()
      Returns a string something like "64K of 256MB (25%)" that shows how much of the available memory is in use. This is the string displayed when the user clicks in the status bar.
    • currentMemory

      public static long currentMemory()
      Returns the amount of memory currently being used by ImageJ.
    • maxMemory

      public static long maxMemory()
      Returns the maximum amount of memory available to ImageJ or zero if ImageJ is unable to determine this limit.
    • showTime

      public static void showTime​(ImagePlus imp, long start, java.lang.String str)
    • showTime

      public static void showTime​(ImagePlus imp, long start, java.lang.String str, int nslices)
    • time

      public static java.lang.String time​(ImagePlus imp, long startNanoTime)
      Experimental
    • d2s

      public static java.lang.String d2s​(double n)
      Converts a number to a formatted string using 2 digits to the right of the decimal point.
    • d2s

      public static java.lang.String d2s​(double n, int decimalPlaces)
      Converts a number to a rounded formatted string. The 'decimalPlaces' argument specifies the number of digits to the right of the decimal point (0-9). Uses scientific notation if 'decimalPlaces is negative.
    • d2s

      public static java.lang.String d2s​(double x, int significantDigits, int maxDigits)
      Converts a number to a rounded formatted string. The 'significantDigits' argument specifies the minimum number of significant digits, which is also the preferred number of digits behind the decimal. Fewer decimals are shown if the number would have more than 'maxDigits'. Exponential notation is used if more than 'maxDigits' would be needed.
    • pad

      public static java.lang.String pad​(int n, int digits)
      Pad 'n' with leading zeros to the specified number of digits.
    • pad

      public static java.lang.String pad​(java.lang.String s, int digits)
      Pad 's' with leading zeros to the specified number of digits.
    • register

      public static void register​(java.lang.Class c)
      Adds the specified class to a Vector to keep it from being garbage collected, which would cause the classes static fields to be reset. Probably not needed with Java 1.2 or later.
    • spaceBarDown

      public static boolean spaceBarDown()
      Returns true if the space bar is down.
    • controlKeyDown

      public static boolean controlKeyDown()
      Returns true if the control key is down.
    • altKeyDown

      public static boolean altKeyDown()
      Returns true if the alt key is down.
    • shiftKeyDown

      public static boolean shiftKeyDown()
      Returns true if the shift key is down.
    • setKeyDown

      public static void setKeyDown​(int key)
    • setKeyUp

      public static void setKeyUp​(int key)
    • setInputEvent

      public static void setInputEvent​(java.awt.event.InputEvent e)
    • isMacintosh

      public static boolean isMacintosh()
      Returns true if this machine is a Macintosh.
    • isMacOSX

      public static boolean isMacOSX()
      Returns true if this machine is a Macintosh running OS X.
    • isWindows

      public static boolean isWindows()
      Returns true if this machine is running Windows.
    • javaVersion

      public static int javaVersion()
      Returns the Java version (6, 7, 8, 9, 10, etc.).
    • isJava2

      public static boolean isJava2()
      Always returns true.
    • isJava14

      public static boolean isJava14()
      Always returns true.
    • isJava15

      public static boolean isJava15()
      Always returns true.
    • isJava16

      public static boolean isJava16()
      Returns true if ImageJ is running on a Java 1.6 or greater JVM.
    • isJava17

      public static boolean isJava17()
      Returns true if ImageJ is running on a Java 1.7 or greater JVM.
    • isJava18

      public static boolean isJava18()
      Returns true if ImageJ is running on a Java 1.8 or greater JVM.
    • isJava19

      public static boolean isJava19()
      Returns true if ImageJ is running on a Java 1.9 or greater JVM.
    • isLinux

      public static boolean isLinux()
      Returns true if ImageJ is running on Linux.
    • isVista

      public static boolean isVista()
      Obsolete; always returns false.
    • is64Bit

      public static boolean is64Bit()
      Returns true if ImageJ is running a 64-bit version of Java.
    • versionLessThan

      public static boolean versionLessThan​(java.lang.String version)
      Displays an error message and returns true if the ImageJ version is less than the one specified.
    • setupDialog

      public static int setupDialog​(ImagePlus imp, int flags)
      Displays a "Process all images?" dialog. Returns 'flags'+PlugInFilter.DOES_STACKS if the user selects "Yes", 'flags' if the user selects "No" and PlugInFilter.DONE if the user selects "Cancel".
    • makeRectangle

      public static void makeRectangle​(int x, int y, int width, int height)
      Creates a rectangular selection. Removes any existing selection if width or height are less than 1.
    • makeRectangle

      public static void makeRectangle​(double x, double y, double width, double height)
      Creates a subpixel resolution rectangular selection.
    • makeOval

      public static void makeOval​(int x, int y, int width, int height)
      Creates an oval selection. Removes any existing selection if width or height are less than 1.
    • makeOval

      public static void makeOval​(double x, double y, double width, double height)
      Creates an subpixel resolution oval selection.
    • makeLine

      public static void makeLine​(int x1, int y1, int x2, int y2)
      Creates a straight line selection.
    • makeLine

      public static void makeLine​(double x1, double y1, double x2, double y2)
      Creates a straight line selection using floating point coordinates.
    • makePoint

      public static void makePoint​(int x, int y)
      Creates a point selection using integer coordinates..
    • makePoint

      public static void makePoint​(double x, double y)
      Creates a point selection using floating point coordinates.
    • Roi

      public static Roi Roi​(double x, double y, double width, double height)
      Creates an Roi.
    • OvalRoi

      public static OvalRoi OvalRoi​(double x, double y, double width, double height)
      Creates an OvalRoi.
    • setMinAndMax

      public static void setMinAndMax​(double min, double max)
      Sets the display range (minimum and maximum displayed pixel values) of the current image.
    • setMinAndMax

      public static void setMinAndMax​(ImagePlus img, double min, double max)
      Sets the display range (minimum and maximum displayed pixel values) of the specified image.
    • setMinAndMax

      public static void setMinAndMax​(double min, double max, int channels)
      Sets the minimum and maximum displayed pixel values on the specified RGB channels, where 4=red, 2=green and 1=blue.
    • resetMinAndMax

      public static void resetMinAndMax()
      Resets the minimum and maximum displayed pixel values of the current image to be the same as the min and max pixel values.
    • resetMinAndMax

      public static void resetMinAndMax​(ImagePlus img)
      Resets the minimum and maximum displayed pixel values of the specified image to be the same as the min and max pixel values.
    • setThreshold

      public static void setThreshold​(double lowerThreshold, double upperThresold)
      Sets the lower and upper threshold levels and displays the image using red to highlight thresholded pixels. May not work correctly on 16 and 32 bit images unless the display range has been reset using IJ.resetMinAndMax().
    • setThreshold

      public static void setThreshold​(double lowerThreshold, double upperThreshold, java.lang.String displayMode)
      Sets the lower and upper threshold levels and displays the image using the specified displayMode ("Red", "Black & White", "Over/Under" or "No Update").
    • setThreshold

      public static void setThreshold​(ImagePlus img, double lowerThreshold, double upperThreshold)
      Sets the lower and upper threshold levels of the specified image.
    • setThreshold

      public static void setThreshold​(ImagePlus img, double lowerThreshold, double upperThreshold, java.lang.String displayMode)
      Sets the lower and upper threshold levels of the specified image and updates the display using the specified displayMode ("Red", "Black & White", "Over/Under" or "No Update"). With calibrated images, 'lowerThreshold' and 'upperThreshold' must be density calibrated values. Use setRawThreshold() to set the threshold using raw (uncalibrated) values.
    • setRawThreshold

      public static void setRawThreshold​(ImagePlus img, double lowerThreshold, double upperThreshold, java.lang.String displayMode)
      This is a version of setThreshold() that always uses raw (uncalibrated) values in the range 0-255 for 8-bit images and 0-65535 for 16-bit images.
    • setAutoThreshold

      public static void setAutoThreshold​(ImagePlus imp, java.lang.String method)
    • resetThreshold

      public static void resetThreshold()
      Disables thresholding on the current image.
    • resetThreshold

      public static void resetThreshold​(ImagePlus img)
      Disables thresholding on the specified image.
    • selectWindow

      public static void selectWindow​(int id)
      For IDs less than zero, activates the image with the specified ID. For IDs greater than zero, activates the Nth image.
    • selectWindow

      public static void selectWindow​(java.lang.String title)
      Activates the window with the specified title.
    • setForegroundColor

      public static void setForegroundColor​(int red, int green, int blue)
      Sets the foreground color.
    • setBackgroundColor

      public static void setBackgroundColor​(int red, int green, int blue)
      Sets the background color.
    • setTool

      public static void setTool​(int id)
      Switches to the specified tool, where id = Toolbar.RECTANGLE (0), Toolbar.OVAL (1), etc.
    • setTool

      public static boolean setTool​(java.lang.String name)
      Switches to the specified tool, where 'name' is "rect", "elliptical", "brush", etc. Returns 'false' if the name is not recognized.
    • getToolName

      public static java.lang.String getToolName()
      Returns the name of the current tool.
    • doWand

      public static int doWand​(int x, int y)
      Equivalent to clicking on the current image at (x,y) with the wand tool. Returns the number of points in the resulting ROI.
    • doWand

      public static int doWand​(int x, int y, double tolerance, java.lang.String mode)
      Traces the boundary of the area with pixel values within 'tolerance' of the value of the pixel at the starting location. 'tolerance' is in uncalibrated units. 'mode' can be "4-connected", "8-connected" or "Legacy". "Legacy" is for compatibility with previous versions of ImageJ; it is ignored if 'tolerance' > 0.
    • doWand

      public static int doWand​(ImagePlus img, int x, int y, double tolerance, java.lang.String mode)
      This version of doWand adds an ImagePlus argument.
    • setPasteMode

      public static void setPasteMode​(java.lang.String mode)
      Sets the transfer mode used by the Edit/Paste command, where mode is "Copy", "Blend", "Average", "Difference", "Transparent", "Transparent2", "AND", "OR", "XOR", "Add", "Subtract", "Multiply", or "Divide".
    • stringToPasteMode

      public static int stringToPasteMode​(java.lang.String mode)
    • getImage

      public static ImagePlus getImage()
      Returns a reference to the active image, or displays an error message and aborts the plugin or macro if no images are open.
    • getImage

      public static ImagePlus getImage​(Interpreter interpreter)
      The macro interpreter uses this method to call getImage().
    • getProcessor

      public static ImageProcessor getProcessor()
      Returns the active image or stack slice as an ImageProcessor, or displays an error message and aborts the plugin or macro if no images are open.
    • setSlice

      public static void setSlice​(int slice)
      Switches to the specified stack slice, where 1
    • getVersion

      public static java.lang.String getVersion()
      Returns the ImageJ version number as a string.
    • getFullVersion

      public static java.lang.String getFullVersion()
      Returns the ImageJ version and build number as a String, for example "1.46n05", or 1.46n99 if there is no build number.
    • getDirectory

      public static java.lang.String getDirectory​(java.lang.String title)
      Returns the path to the specified directory if title is "home" ("user.home"), "downloads", "startup", "imagej" (ImageJ directory), "plugins", "macros", "luts", "temp", "current", "default", "image" (directory active image was loaded from), "file" (directory most recently used to open or save a file) or "cwd" (current working directory), otherwise displays a dialog and returns the path to the directory selected by the user. Returns null if the specified directory is not found or the user cancels the dialog box. Also aborts the macro if the user cancels the dialog box.
    • addSeparator

      public static java.lang.String addSeparator​(java.lang.String path)
    • getDir

      public static java.lang.String getDir​(java.lang.String title)
      Alias for getDirectory().
    • getFilePath

      public static java.lang.String getFilePath​(java.lang.String dialogTitle)
      Displays an open file dialog and returns the path to the choosen file, or returns null if the dialog is canceled.
    • open

      public static void open()
      Displays a file open dialog box and then opens the tiff, dicom, fits, pgm, jpeg, bmp, gif, lut, roi, or text file selected by the user. Displays an error message if the selected file is not in one of the supported formats, or if it is not found.
    • open

      public static void open​(java.lang.String path)
      Opens and displays a tiff, dicom, fits, pgm, jpeg, bmp, gif, lut, roi, or text file. Displays an error message if the specified file is not in one of the supported formats, or if it is not found. With 1.41k or later, opens images specified by a URL.
    • open

      public static void open​(java.lang.String path, int n)
      Opens and displays the nth image in the specified tiff stack.
    • openImage

      public static ImagePlus openImage​(java.lang.String path)
      Opens the specified file as a tiff, bmp, dicom, fits, pgm, gif, jpeg or text image and returns an ImagePlus object if successful. Calls HandleExtraFileTypes plugin if the file type is not recognised. Displays a file open dialog if 'path' is null or an empty string. Note that 'path' can also be a URL. Some reader plugins, including the Bio-Formats plugin, display the image and return null. Use IJ.open() to display a file open dialog box.
    • openImage

      public static ImagePlus openImage​(java.lang.String path, int n)
      Opens the nth image of the specified tiff stack.
    • openVirtual

      public static ImagePlus openVirtual​(java.lang.String path)
      Opens the specified tiff file as a virtual stack.
    • openImage

      public static ImagePlus openImage()
      Opens an image using a file open dialog and returns it as an ImagePlus object.
    • openUrlAsString

      public static java.lang.String openUrlAsString​(java.lang.String url)
      Opens a URL and returns the contents as a string. Returns "" if there an error, including host or file not found.
    • save

      public static void save​(java.lang.String path)
      Saves the current image, lookup table, selection or text window to the specified file path. The path must end in ".tif", ".jpg", ".gif", ".zip", ".raw", ".avi", ".bmp", ".fits", ".pgm", ".png", ".lut", ".roi" or ".txt".
    • save

      public static void save​(ImagePlus imp, java.lang.String path)
      Saves the specified image, lookup table or selection to the specified file path. The file path should end with ".tif", ".jpg", ".gif", ".zip", ".raw", ".avi", ".bmp", ".fits", ".pgm", ".png", ".lut", ".roi" or ".txt". The specified image is saved in TIFF format if there is no extension.
    • saveAs

      public static void saveAs​(java.lang.String format, java.lang.String path)
    • saveAs

      public static void saveAs​(ImagePlus imp, java.lang.String format, java.lang.String path)
    • saveAsTiff

      public static boolean saveAsTiff​(ImagePlus imp, java.lang.String path)
      Saves the specified image in TIFF format. Displays a file save dialog if 'path' is null or an empty string. Returns 'false' if there is an error or if the user selects "Cancel" in the file save dialog.
    • saveString

      public static java.lang.String saveString​(java.lang.String string, java.lang.String path)
      Saves a string as a file. Displays a file save dialog if 'path' is null or blank. Returns an error message if there is an exception, otherwise returns null.
    • append

      public static java.lang.String append​(java.lang.String string, java.lang.String path)
      Appends a string to the end of a file. A newline character ("\n") is added to the end of the string before it is written. Returns an error message if there is an exception, otherwise returns null.
    • openAsString

      public static java.lang.String openAsString​(java.lang.String path)
      Opens a text file as a string. Displays a file open dialog if path is null or blank. Returns null if the user cancels the file open dialog. If there is an error, returns a message in the form "Error: message".
    • openAsByteBuffer

      public static java.nio.ByteBuffer openAsByteBuffer​(java.lang.String path)
    • createImage

      public static ImagePlus createImage​(java.lang.String title, int width, int height, int depth, int bitdepth)
      Creates a new image.
      Parameters:
      title - image name
      width - image width in pixels
      height - image height in pixels
      depth - number of stack images
      bitdepth - 8, 16, 32 (float) or 24 (RGB)
    • createImage

      public static ImagePlus createImage​(java.lang.String title, java.lang.String type, int width, int height, int depth)
      Creates a new imagePlus. Type should contain "8-bit", "16-bit", "32-bit" or "RGB". In addition, it can contain "white", "black" or "ramp". Width and height specify the width and height of the image in pixels. Depth specifies the number of stack slices.
    • createImage

      public static ImagePlus createImage​(java.lang.String title, java.lang.String type, int width, int height, int channels, int slices, int frames)
      Creates a new hyperstack.
      Parameters:
      title - image name
      type - "8-bit", "16-bit", "32-bit" or "RGB". May also contain "white" , "black" (the default), "ramp", "composite-mode", "color-mode", "grayscale-mode or "label".
      width - image width in pixels
      height - image height in pixels
      channels - number of channels
      slices - number of slices
      frames - number of frames
    • createHyperStack

      public static ImagePlus createHyperStack​(java.lang.String title, int width, int height, int channels, int slices, int frames, int bitdepth)
      Creates a new hyperstack.
      Parameters:
      title - image name
      width - image width in pixels
      height - image height in pixels
      channels - number of channels
      slices - number of slices
      frames - number of frames
      bitdepth - 8, 16, 32 (float) or 24 (RGB)
    • newImage

      public static void newImage​(java.lang.String title, java.lang.String type, int width, int height, int depth)
      Opens a new image. Type should contain "8-bit", "16-bit", "32-bit" or "RGB". In addition, it can contain "white", "black" or "ramp". Width and height specify the width and height of the image in pixels. Depth specifies the number of stack slices.
    • escapePressed

      public static boolean escapePressed()
      Returns true if the Esc key was pressed since the last ImageJ command started to execute or since resetEscape() was called.
    • resetEscape

      public static void resetEscape()
      This method sets the Esc key to the "up" position. The Executer class calls this method when it runs an ImageJ command in a separate thread.
    • redirectErrorMessages

      public static void redirectErrorMessages()
      Causes IJ.error() output to be temporarily redirected to the "Log" window.
    • redirectErrorMessages

      public static void redirectErrorMessages​(boolean redirect)
      Set 'true' and IJ.error() output will be temporarily redirected to the "Log" window.
    • redirectingErrorMessages

      public static boolean redirectingErrorMessages()
      Returns the state of the 'redirectErrorMessages' flag, which is set by File/Import/Image Sequence.
    • suppressPluginNotFoundError

      public static void suppressPluginNotFoundError()
      Temporarily suppress "plugin not found" errors.
    • getClassLoader

      public static java.lang.ClassLoader getClassLoader()
      Returns the class loader ImageJ uses to run plugins or the system class loader if Menus.getPlugInsPath() returns null.
    • getScreenSize

      public static java.awt.Dimension getScreenSize()
      Returns the size, in pixels, of the primary display.
    • getLuts

      public static java.lang.String[] getLuts()
      Returns, as an array of strings, a list of the LUTs in the Image/Lookup Tables menu.
    • resetClassLoader

      public static void resetClassLoader()
    • handleException

      public static void handleException​(java.lang.Throwable e)
      Displays a stack trace. Use the setExceptionHandler method() to override with a custom exception handler.
    • setExceptionHandler

      public static void setExceptionHandler​(IJ.ExceptionHandler handler)
      Installs a custom exception handler that overrides the handleException() method.
    • addEventListener

      public static void addEventListener​(IJEventListener listener)
    • removeEventListener

      public static void removeEventListener​(IJEventListener listener)
    • notifyEventListeners

      public static void notifyEventListeners​(int eventID)
    • setProperty

      public static void setProperty​(java.lang.String key, java.lang.Object value)
      Adds a key-value pair to IJ.properties. The key and value are removed if 'value' is null.
    • getProperty

      public static java.lang.Object getProperty​(java.lang.String key)
      Returns the object in IJ.properties associated with 'key', or null if 'key' is not found.
    • statusBarProtected

      public static boolean statusBarProtected()
    • protectStatusBar

      public static void protectStatusBar​(boolean protect)