Module ij
Package ij

# Class ImagePlus

java.lang.Object
ij.ImagePlus

All Implemented Interfaces:
  `Measurements`, `ImageObserver`, `Cloneable`

Direct Known Subclasses:
  `BMP_Reader`, `CompositeImage`, `DICOM`, `FITS_Reader`, `GIF_Reader`, `HistogramPlot`, `LutLoader`, `PGM_Reader`

public class ImagePlus extends Object implements ImageObserver, Measurements, Cloneable
An ImagePlus contain an ImageProcessor (2D image) or an ImageStack (3D, 4D or 5D image). It also includes metadata (spatial calibration and possibly the directory/file where it was read from). The ImageProcessor contains the pixel data (8-bit, 16-bit, float or RGB) of the 2D image and some basic methods to manipulate it. An ImageStack is essentually a list ImageProcessors of same type and size.

See Also:
  - `ImageProcessor`
  - `ImageStack`
  - `ImageWindow`
  - `ImageCanvas`

## Field Summary

Fields
Modifier and Type
Field
Description
`boolean`
`changes`
True if any changes have been made to this image.
`protected static final int`
`CLOSED`
`static final int`
`COLOR_256`
8-bit indexed color
`static final int`
`COLOR_RGB`
32-bit RGB color
`protected boolean`
`compositeImage`
`protected int`
`currentSlice`
`protected boolean`
`dimensionsSet`
`static final String`
`flattenTitle`
Title of image used by Flatten command
`static final int`
`GRAY16`
16-bit grayscale (unsigned)
`static final int`
`GRAY32`
32-bit floating-point grayscale
`static final int`
`GRAY8`
8-bit grayscale (unsigned)
`protected int`
`height`
`protected Image`
`img`
`protected ImageProcessor`
`ip`
`protected boolean`
`locked`
`protected int`
`nChannels`
`protected int`
`nFrames`
`protected int`
`nSlices`
`protected static final int`
`OPENED`
`protected Roi`
`roi`
`protected static final int`
`SAVED`
`boolean`
`setIJMenuBar`
`protected static final int`
`UPDATED`
`protected int`
`width`
`protected ImageWindow`
`win`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Fields inherited from interface ij.measure.Measurements

`ADD_TO_OVERLAY, ALL_STATS, AREA, AREA_FRACTION, CENTER_OF_MASS, CENTROID, CIRCULARITY, ELLIPSE, FERET, INTEGRATED_DENSITY, INVERT_Y, KURTOSIS, LABELS, LIMIT, MAX_STANDARDS, MEAN, MEDIAN, MIN_MAX, MODE, NaN_EMPTY_CELLS, PERIMETER, RECT, SCIENTIFIC_NOTATION, SHAPE_DESCRIPTORS, SKEWNESS, SLICE, STACK_POSITION, STD_DEV`

## Constructor Summary

Constructors
Constructor
Description
`ImagePlus()`
Constructs an uninitialized ImagePlus.
`ImagePlus(String pathOrURL)`
Constructs an ImagePlus from a TIFF, BMP, DICOM, FITS, PGM, GIF or JPRG specified by a path or from a TIFF, DICOM, GIF or JPEG specified by a URL.
`ImagePlus(String title, ImageStack stack)`
Constructs an ImagePlus from a stack.
`ImagePlus(String title, ImageProcessor ip)`
Constructs an ImagePlus from an ImageProcessor.
`ImagePlus(String title, Image image)`
Constructs an ImagePlus from an Image or BufferedImage.

## Method Summary

Modifier and Type
Method
Description
`static void`
`addImageListener(ImageListener listener)`
`Object`
`clone()`
Returns a shallow copy of this ImagePlus.
`void`
`close()`
Closes this image and sets the ImageProcessor to null.
`int[]`
`convertIndexToPosition(int n)`
Converts the stack index 'n' (one-based) into a hyperstack position (channel, slice, frame).
`static ImageProcessor`
`convertToImageProcessor(BufferedImage img, int band)`
Extract pixels as an ImageProcessor from a single band of a BufferedImage.
`void`
`copy()`
Copies the contents of the current selection, or the entire image if there is no selection, to the internal clipboard.
`void`
`copy(boolean cut)`
Copies the contents of the current selection to the internal clipboard.
`void`
`copyAttributes(ImagePlus imp)`
Used internally.
`void`
`copyScale(ImagePlus imp)`
Copies the calibration of the specified image to this image.
`void`
`copyToSystem()`
Copies the contents of the current selection, or the entire image if there is no selection, to the system clipboard.
`ImageStack`
`createEmptyStack()`
Returns an empty image stack that has the same width, height and color table as this image.
`ImagePlus`
`createHyperStack(String title, int channels, int slices, int frames, int bitDepth)`
This method has been replaced by IJ.createHyperStack().
`ImagePlus`
`createImagePlus()`
Returns a new ImagePlus with this image's attributes (e.g.
`LookUpTable`
`createLut()`
Creates a LookUpTable object that corresponds to this image.
`void`
`createNewRoi(int sx, int sy)`
Starts the process of creating a new selection, where sx and sy are the starting screen coordinates.
`ByteProcessor`
`createRoiMask()`
Returns an 8-bit binary (foreground=255, background=0) ROI or overlay mask that has the same dimensions as this image.
`ByteProcessor`
`createThresholdMask()`
Returns an 8-bit binary threshold mask (foreground=255, background=0) that has the same dimensions as this image.
`ImagePlus`
`crop()`
Returns a copy this image or stack slice, cropped if there is an ROI.
`ImagePlus[]`
`crop(Roi[] rois)`
Multi-roi cropping with default "slice" option.
`ImagePlus[]`
`crop(Roi[] rois, String options)`
Returns an array of cropped images based on the provided list of rois.
`ImagePlus`
`crop(String options)`
Returns a cropped copy this image or stack, where 'options' can be "stack", "slice", "whole-slice" or a range (e.g., "20-30").
`void`
`cropAndSave(Roi[] rois, String directory, String format)`
Saves the contents of the ROIs in this overlay as separate images, where 'directory' is the directory path and 'format' is "tif", "png" or "jpg".
`void`
`cut()`
Copies the contents of the current selection to the internal clipboard and then clears the selection.
`void`
`deleteRoi()`
Deletes the current region of interest.
`void`
`draw()`
Draws the image.
`void`
`draw(int x, int y, int width, int height)`
Draws image and roi outline using a clip rect.
`ImagePlus`
`duplicate()`
Returns a copy of this image or stack.
`ImagePlus`
`flatten()`
Returns a "flattened" version of this image, or stack slice, in RGB format.
`void`
`flattenStack()`
Flattens all slices of this stack or HyperStack.
`void`
`flush()`
Sets the ImageProcessor, Roi, AWT Image and stack image arrays to null.
`ImageStatistics`
`getAllStatistics()`
This method returns complete calibrated statistics for this image or ROI (with "Limit to threshold"), but it is up to 70 times slower than getStatistics().
`int`
`getBitDepth()`
Returns the bit depth, 8, 16, 24 (RGB) or 32, or 0 if the bit depth is unknown.
`BufferedImage`
`getBufferedImage()`
Returns a copy of this image as an 8-bit or RGB BufferedImage.
`int`
`getBytesPerPixel()`
Returns the number of bytes per pixel.
`int`
`getC()`
Returns the current hyperstack channel position.
`Calibration`
`getCalibration()`
Returns this image's calibration.
`ImageCanvas`
`getCanvas()`
Returns the ImageCanvas being used to display this image, or null.
`int`
`getChannel()`
`ImageProcessor`
`getChannelProcessor()`
Returns a reference to the current ImageProcessor.
`static ImagePlus`
`getClipboard()`
Returns the internal clipboard or null if the internal clipboard is empty.
`int`
`getCompositeMode()`
Returns the display mode (IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE) if this is a CompositeImage, otherwise returns -1.
`int`
`getCurrentSlice()`
Returns the current stack index (one-based) or 1 if this is a single image.
`static int`
`getDefault16bitRange()`
Returns the default 16-bit display range, 0 (auto-scaling), 8, 10, 12, 14, 15 or 16.
`int[]`
`getDimensions()`
Returns the dimensions of this image (width, height, nChannels, nSlices, nFrames) as a 5 element int array.
`int[]`
`getDimensions(boolean varify)`
`int`
`getDisplayMode()`
Returns the display mode (IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE) if this is a composite color image, or 0 if it not.
`double`
`getDisplayRangeMax()`
Returns the display range maximum of the current channel.
`double`
`getDisplayRangeMin()`
Returns the display range minimum of the current channel.
`FileInfo`
`getFileInfo()`
Returns a FileInfo object containing information, including the pixel array, needed to save this image.
`int`
`getFrame()`
`Calibration`
`getGlobalCalibration()`
Returns the system-wide calibration, or null.
`int`
`getHeight()`
Returns the height of this image in pixels.
`boolean`
`getHideOverlay()`
`int`
`getID()`
Returns this image's unique numeric ID.
`Image`
`getImage()`
Returns this image as a AWT image.
`Properties`
`getImageProperties()`
`ImageStack`
`getImageStack()`
Returns the base image stack.
`int`
`getImageStackSize()`
If this is a stack, returns the actual number of images in the stack, else returns 1.
`String`
`getInfoProperty()`
Returns the "Info" property string, or null if it is not found.
`static Vector`
`getListeners()`
`Calibration`
`getLocalCalibration()`
Returns this image's local calibration, ignoring the "Global" calibration flag.
`String`
`getLocationAsString(int x, int y)`
Converts the current cursor location to a string.
`LUT[]`
`getLuts()`
Returns an array containing the lookup tables used by this image, one per channel, or an empty array if this is an RGB image.
`ImageProcessor`
`getMask()`
For images with irregular ROIs, returns a byte mask, otherwise, returns null.
`int`
`getNChannels()`
Returns the number of channels.
`int`
`getNDimensions()`
Returns the number of dimensions (2, 3, 4 or 5).
`int`
`getNFrames()`
Returns the number of frames (time-points).
`int`
`getNSlices()`
Returns the image depth (number of z-slices).
`double`
`getNumericProp(String key)`
Returns the numeric property associated with the specified key or NaN if the property is not found.
`double`
`getNumericProperty(String key)`
Returns the numeric value from the "Info" property string associated with 'key', or NaN if the key is not found or the value associated with the key is not numeric.
`boolean`
`getOpenAsHyperStack()`
`FileInfo`
`getOriginalFileInfo()`
Returns the FileInfo object that was used to open this image.
`Overlay`
`getOverlay()`
Returns the current overly, or null if this image does not have an overlay.
`int[]`
`getPixel(int x, int y)`
Returns the pixel value at (x,y) as a 4 element array.
`Plot`
`getPlot()`
`ImageProcessor`
`getProcessor()`
Returns a reference to the current ImageProcessor.
`String`
`getProp(String key)`
Returns as a string the image property associated with the specified key or null if the property is not found.
`Properties`
`getProperties()`
Returns this image's Properties.
`String[]`
`getPropertiesAsArray()`
Used for saving string properties in TIFF header.
`Object`
`getProperty(String key)`
Returns the property associated with 'key', or null if it is not found.
`String`
`getPropsInfo()`
Returns information displayed by Image/Show Info command.
`ImageStatistics`
`getRawStatistics()`
`Roi`
`getRoi()`
Returns the current selection, or null if there is no selection.
`String`
`getShortTitle()`
If the image title is a file name, returns the name without the extension and with spaces removed, otherwise returns the title shortened to the first space.
`double`
`getSizeInBytes()`
Returns the size of this image in bytes.
`int`
`getSlice()`
`ImageStack`
`getStack()`
Returns the image stack.
`int`
`getStackIndex(int channel, int slice, int frame)`
Returns that stack index (one-based) corresponding to the specified position.
`int`
`getStackSize()`
Returns the number of stack images.
`long`
`getStartTime()`
Returns the time in milliseconds when startTiming() was last called.
`static Calibration`
`getStaticGlobalCalibration()`
This is a version of getGlobalCalibration() that can be called from a static context.
`ImageStatistics`
`getStatistics()`
Get calibrated statistics for this image or ROI, including histogram, area, mean, min and max, standard deviation and mode.
`ImageStatistics`
`getStatistics(int mOptions)`
Returns an ImageStatistics object generated using the specified measurement options.
`ImageStatistics`
`getStatistics(int mOptions, int nBins)`
Returns an ImageStatistics object generated using the specified measurement options and histogram bin count.
`ImageStatistics`
`getStatistics(int mOptions, int nBins, double histMin, double histMax)`
Returns an ImageStatistics object generated using the specified measurement options, histogram bin count and histogram range.
`String`
`getStringProperty(String key)`
Returns the string value from the "Info" property string associated with 'key', or null if the key is not found.
`int`
`getT()`
Returns the current hyperstack frame position.
`String`
`getTitle()`
Returns the image name.
`int`
`getType()`
Returns the current image type (ImagePlus.GRAY8, ImagePlus.GRAY16, ImagePlus.GRAY32, ImagePlus.COLOR_256 or ImagePlus.COLOR_RGB).
`int`
`getWidth()`
Returns the width of this image in pixels.
`ImageWindow`
`getWindow()`
Returns the ImageWindow that is being used to display this image.
`int`
`getZ()`
Returns the current hyperstack slice position.
`boolean`
`hasImageStack()`
Returns 'true' if this ImagePlus contains an ImageStack.
`void`
`hide()`
Closes the window, if any, that is displaying this image.
`boolean`
`imageUpdate(Image img, int flags, int x, int y, int w, int h)`
Used by ImagePlus to monitor loading of images.
`boolean`
`isComposite()`
Returns true if this is a CompositeImage.
`boolean`
`isDisplayedHyperStack()`
Returns 'true' if this is a hyperstack currently being displayed in a StackWindow.
`boolean`
`isHyperStack()`
Returns 'true' if this image has more than three dimensions.
`boolean`
`isInvertedLut()`
Returns true is this image uses an inverting LUT that displays zero as white and 255 as black.
`boolean`
`isLocked()`
Returns 'true' if the image is locked.
`boolean`
`isLockedByAnotherThread()`
Returns 'true' if the image was locked on another thread.
`boolean`
`isProcessor()`
`boolean`
`isRGB()`
`boolean`
`isStack()`
Deprecated.
Replaced by ImagePlus.hasImageStack()
`boolean`
`isThreshold()`
Returns 'true' if this image is thresholded.
`boolean`
`isVisible()`
Returns true if this image is currently being displayed in a window.
`void`
`killRoi()`
Deletes the current region of interest.
`void`
`killStack()`
`boolean`
`lock()`
Locks the image so other threads can test to see if it is in use.
`boolean`
`lockSilently()`
Similar to lock, but doesn't beep and display an error message if the attempt to lock the image fails.
`static void`
`logImageListeners()`
For debug purposes, writes all registered (and possibly, forgotten) ImageListeners to the log window
`void`
`mouseMoved(int x, int y)`
Displays the cursor coordinates and pixel value in the status bar.
`protected void`
`notifyListeners(int id)`
`boolean`
`okToDeleteRoi()`
`void`
`paste()`
Inserts the contents of the internal clipboard into this image.
`void`
`paste(int x, int y)`
Inserts the contents of the internal clipboard at the specified location, without updating the display.
`void`
`paste(int x, int y, String mode)`
Copies the contents of the internal clipboard to the specified location using the specified transfer mode ("Copy", "Blend", "Average", "Difference", "Transparent", "Transparent2", "AND", "OR", "XOR", "Add", "Subtract", "Multiply", or "Divide").
`PlotWindow`
`plotHistogram()`
Plots a 256 bin histogram of this image and returns the PlotWindow.
`PlotWindow`
`plotHistogram(int bins)`
Plots a histogram of this image using the specified number of bins and returns the PlotWindow.
`static void`
`removeImageListener(ImageListener listener)`
`void`
`removeScale()`
Removes the spatial scaling of this image.
`void`
`repaintWindow()`
Calls draw to draw the image and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.
`static void`
`resetClipboard()`
Clears the internal clipboard.
`void`
`resetDisplayRange()`
`void`
`resetRoi()`
Deletes the current region of interest.
`void`
`resetStack()`
`ImagePlus`
`resize(int dstWidth, int dstHeight, int dstDepth, String options)`
Returns a scaled copy of this image or ROI, where the 'options' string can contain 'none', 'bilinear'.
`ImagePlus`
`resize(int dstWidth, int dstHeight, String options)`
Returns a scaled copy of this image or ROI, where the 'options' string can contain 'none', 'bilinear'.
`void`
`restoreRoi()`
`void`
`revert()`
Implements the File/Revert command.
`void`
`saveRoi()`
`void`
`setActivated()`
Called by ImageWindow.windowActivated(); to end waiting in waitTillActivated.
`void`
`setActiveChannels(String channels)`
Controls which channels in a composite color image are displayed, where 'channels' is a list of ones and zeros that specify the channels to display.
`void`
`setAntialiasRendering(boolean antialiasRendering)`
Enable/disable use of antialiasing by the flatten() method.
`void`
`setAutoThreshold(String method)`
Uses the specified method to set the threshold levels of this image.
`void`
`setBorderColor(Color borderColor)`
`void`
`setC(int channel)`
Sets the hyperstack channel position (one based).
`void`
`setCalibration(Calibration cal)`
Sets this image's calibration.
`void`
`setColor(Color c)`
Sets current foreground color.
`void`
`setDeactivated()`
Called by `new StackWindow(ImagePlus)` before showing the StackWindow, to prepare for waitTillActivated().
`static void`
`setDefault16bitRange(int bitDepth)`
Set the default 16-bit display range, where 'bitDepth' must be 0 (auto-scaling), 8 (0-255), 10 (0-1023), 12 (0-4095, 14 (0-16383), 15 (0-32767) or 16 (0-65535).
`void`
`setDefaultDisplayRange(double min, double max)`
`void`
`setDimensions(int nChannels, int nSlices, int nFrames)`
Sets the 3rd, 4th and 5th dimensions, where `nChannels`*`nSlices`*`nFrames` must be equal to the stack size.
`void`
`setDisplayMode(int mode)`
Sets the display mode of composite color images, where 'mode' should be IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE.
`void`
`setDisplayRange(double min, double max)`
Sets the display range of the current channel.
`void`
`setDisplayRange(double min, double max, int channels)`
Sets the display range of specified channels in an RGB image, where 4=red, 2=green, 1=blue, 6=red+green, etc.
`void`
`setFileInfo(FileInfo fi)`
Saves this image's FileInfo so it can be later retieved using getOriginalFileInfo().
`void`
`setGlobalCalibration(Calibration global)`
Sets the system-wide calibration.
`void`
`setHideOverlay(boolean hide)`
`void`
`setIgnoreFlush(boolean ignoreFlush)`
`void`
`setIgnoreGlobalCalibration(boolean ignoreGlobalCalibration)`
`boolean`
`setIJMenuBar()`
`void`
`setIJMenuBar(boolean b)`
`void`
`setImage(ImagePlus imp)`
Replaces this image with the specified ImagePlus.
`void`
`setImage(Image image)`
Replaces the image, if any, with the one specified.
`void`
`setLut(LUT lut)`
Assigns a LUT (lookup table) to this image.
`void`
`setOpenAsHyperStack(boolean openAsHyperStack)`
`void`
`setOverlay(Overlay overlay)`
Installs a list of ROIs that will be drawn on this image as a non-destructive overlay.
`void`
`setOverlay(Roi roi, Color strokeColor, int strokeWidth, Color fillColor)`
Creates an Overlay from the specified ROI, and assigns it to this image.
`void`
`setOverlay(Shape shape, Color color, BasicStroke stroke)`
Creates an Overlay from the specified Shape, Color and BasicStroke, and assigns it to this image.
`void`
`setPlot(Plot plot)`
`void`
`setPosition(int n)`
Set the current hyperstack position based on the stack index 'n' (one-based).
`void`
`setPosition(int channel, int slice, int frame)`
Sets the current hyperstack position and updates the display, where 'channel', 'slice' and 'frame' are one-based indexes.
`void`
`setPositionWithoutUpdate(int channel, int slice, int frame)`
Sets the current hyperstack position without updating the display, where 'channel', 'slice' and 'frame' are one-based indexes.
`void`
`setProcessor(ImageProcessor ip)`
Replaces the ImageProcessor with the one specified and updates the display.
`void`
`setProcessor(String title, ImageProcessor ip)`
Replaces the ImageProcessor with the one specified and updates the display.
`void`
`setProp(String key, double value)`
Saves a persistent numeric propery.
`void`
`setProp(String key, String value)`
Adds a key-value pair to this image's string properties.
`void`
`setProperties(String[] props)`
Creates a set of image properties from an array of strings.
`void`
`setProperty(String key, Object value)`
Adds a key-value pair to this image's properties.
`void`
`setRoi(int x, int y, int width, int height)`
Creates a rectangular selection.
`void`
`setRoi(Roi newRoi)`
Assigns the specified ROI to this image and displays it.
`void`
`setRoi(Roi newRoi, boolean updateDisplay)`
Assigns 'newRoi' to this image and displays it if 'updateDisplay' is true.
`void`
`setRoi(Rectangle r)`
Creates a rectangular selection.
`void`
`setSlice(int n)`
Displays the specified stack image, where 1<=n<=stackSize.
`void`
`setSliceWithoutUpdate(int n)`
Displays the specified stack image (1<=n<=stackSize) without updating the display.
`void`
`setStack(ImageStack stack)`
Replaces the image with the specified stack and updates the display.
`void`
`setStack(ImageStack newStack, int channels, int slices, int frames)`
`void`
`setStack(String title, ImageStack newStack)`
Replaces the image with the specified stack and updates the display.
`void`
`setT(int frame)`
Sets the hyperstack frame position (one based).
`void`
`setTemporary()`
`void`
`setTitle(String title)`
Sets the image name.
`protected void`
`setType(int type)`
`void`
`setTypeToColor256()`
`void`
`setWindow(ImageWindow win)`
This method should only be called from an ImageWindow.
`void`
`setZ(int slice)`
Sets the hyperstack slice position (one based).
`void`
`show()`
Opens a window to display this image and clears the status bar.
`void`
`show(String statusMessage)`
Opens a window to display this image and displays 'statusMessage' in the status bar.
`void`
`startTiming()`
Calls System.currentTimeMillis() to save the current time so it can be retrieved later using getStartTime() to calculate the elapsed time of an operation.
`boolean`
`tempOverlay()`
`boolean`
`toggleOverlay()`
`String`
`toString()`
`void`
`trimProcessor()`
Frees RAM by setting the snapshot (undo) buffer in the current ImageProcessor to null.
`void`
`unlock()`
Unlocks the image.
`void`
`updateAndDraw()`
Updates this image from the pixel data in its associated ImageProcessor, then displays it.
`void`
`updateAndRepaintWindow()`
Calls updateAndDraw to update from the pixel data and draw the image, and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.
`void`
`updateChannelAndDraw()`
Updates this image from the pixel data in its associated ImageProcessor, then displays it.
`void`
`updateImage()`
ImageCanvas.paint() calls this method when the ImageProcessor has generated a new image.
`void`
`updatePosition(int c, int z, int t)`
`void`
`updateStatusbarValue()`
Redisplays the (x,y) coordinates and pixel value (which may have changed) in the status bar.
`void`
`updateVirtualSlice()`
Use to update the image when the underlying virtual stack changes.
`void`
`waitTillActivated()`
Waits until the image window becomes activated.
`boolean`
`windowActivated()`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### GRAY8

public static final int GRAY8
8-bit grayscale (unsigned)

See Also:
  - Constant Field Values

### GRAY16

public static final int GRAY16
16-bit grayscale (unsigned)

See Also:
  - Constant Field Values

### GRAY32

public static final int GRAY32
32-bit floating-point grayscale

See Also:
  - Constant Field Values

### COLOR_256

public static final int COLOR_256
8-bit indexed color

See Also:
  - Constant Field Values

### COLOR_RGB

public static final int COLOR_RGB
32-bit RGB color

See Also:
  - Constant Field Values

### flattenTitle

public static final String flattenTitle
Title of image used by Flatten command

See Also:
  - Constant Field Values

### changes

public boolean changes
True if any changes have been made to this image.

### img

protected Image img

### ip

protected ImageProcessor ip

### win

protected ImageWindow win

### roi

protected Roi roi

### currentSlice

protected int currentSlice

### OPENED

protected static final int OPENED

See Also:
  - Constant Field Values

### CLOSED

protected static final int CLOSED

See Also:
  - Constant Field Values

### UPDATED

protected static final int UPDATED

See Also:
  - Constant Field Values

### SAVED

protected static final int SAVED

See Also:
  - Constant Field Values

### compositeImage

protected boolean compositeImage

### width

protected int width

### height

protected int height

### locked

protected boolean locked

### nChannels

protected int nChannels

### nSlices

protected int nSlices

### nFrames

protected int nFrames

### dimensionsSet

protected boolean dimensionsSet

### setIJMenuBar

public boolean setIJMenuBar

## Constructor Details

### ImagePlus

public ImagePlus()
Constructs an uninitialized ImagePlus.

### ImagePlus

public ImagePlus(String title, Image image)
Constructs an ImagePlus from an Image or BufferedImage. The first argument will be used as the title of the window that displays the image. Throws an IllegalStateException if an error occurs while loading the image.

### ImagePlus

public ImagePlus(String title, ImageProcessor ip)
Constructs an ImagePlus from an ImageProcessor.

### ImagePlus

public ImagePlus(String pathOrURL)
Constructs an ImagePlus from a TIFF, BMP, DICOM, FITS, PGM, GIF or JPRG specified by a path or from a TIFF, DICOM, GIF or JPEG specified by a URL.

### ImagePlus

public ImagePlus(String title, ImageStack stack)
Constructs an ImagePlus from a stack.

## Method Details

### setTemporary

public void setTemporary()

### lock

public boolean lock()
Locks the image so other threads can test to see if it is in use. One thread can lock an image multiple times, then it has to unlock it as many times until it is unlocked. This allows nested locking within a thread. Returns true if the image was successfully locked. Beeps, displays a message in the status bar, and returns false if the image is already locked by another thread.

### lockSilently

public boolean lockSilently()
Similar to lock, but doesn't beep and display an error message if the attempt to lock the image fails.

### unlock

public void unlock()
Unlocks the image. In case the image had been locked several times by the current thread, it gets unlocked only after as many unlock operations as there were previous lock operations.

### isLocked

public boolean isLocked()
Returns 'true' if the image is locked.

### isLockedByAnotherThread

public boolean isLockedByAnotherThread()
Returns 'true' if the image was locked on another thread.

### draw

public void draw()
Draws the image. If there is an ROI, its outline is also displayed. Does nothing if there is no window associated with this image (i.e. show() has not been called).

### draw

public void draw(int x, int y, int width, int height)
Draws image and roi outline using a clip rect.

### updateAndDraw

public void updateAndDraw()
Updates this image from the pixel data in its associated ImageProcessor, then displays it. Does nothing if there is no window associated with this image (i.e. show() has not been called).

### updateVirtualSlice

public void updateVirtualSlice()
Use to update the image when the underlying virtual stack changes.

### setDisplayMode

public void setDisplayMode(int mode)
Sets the display mode of composite color images, where 'mode' should be IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE.

### getDisplayMode

public int getDisplayMode()
Returns the display mode (IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE) if this is a composite color image, or 0 if it not.

### setActiveChannels

public void setActiveChannels(String channels)
Controls which channels in a composite color image are displayed, where 'channels' is a list of ones and zeros that specify the channels to display. For example, "101" causes channels 1 and 3 to be displayed.

### updateChannelAndDraw

public void updateChannelAndDraw()
Updates this image from the pixel data in its associated ImageProcessor, then displays it. The CompositeImage class overrides this method to only update the current channel.

### getChannelProcessor

public ImageProcessor getChannelProcessor()
Returns a reference to the current ImageProcessor. The CompositeImage class overrides this method to return the processor associated with the current channel.

### getLuts

public LUT[] getLuts()
Returns an array containing the lookup tables used by this image, one per channel, or an empty array if this is an RGB image.

See Also:
  - `getNChannels()`
  - `isComposite()`
  - `

    Javascript example:

         luts = imp.getLuts();

         for (i=0; iinvalid input: '<'luts.length; i++)

            IJ.log((i+1)+“: “+luts[i].min+”-”+luts[i].max);

    `

### repaintWindow

public void repaintWindow()
Calls draw to draw the image and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.

### updateAndRepaintWindow

public void updateAndRepaintWindow()
Calls updateAndDraw to update from the pixel data and draw the image, and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.

### updateImage

public void updateImage()
ImageCanvas.paint() calls this method when the ImageProcessor has generated a new image.

### hide

public void hide()
Closes the window, if any, that is displaying this image.

### close

public void close()
Closes this image and sets the ImageProcessor to null. To avoid the "Save changes?" dialog, first set the public 'changes' variable to false.

### show

public void show()
Opens a window to display this image and clears the status bar.

### show

public void show(String statusMessage)
Opens a window to display this image and displays 'statusMessage' in the status bar.

### waitTillActivated

public void waitTillActivated()
Waits until the image window becomes activated. This is necessary in macros or other programs if an ImagePlus is shown on the screen, because displaying the window is asynchronous (happens later) and will make the image the active one. Without waiting, in the meanwhile another window could be already the active one and would become deactivated. If the ImagePlus may have been displayed previously, first call setDeactivated(). `ImagePlus.show()` and `new StackWindow(ImagePlus)` call this method if IJ.isMacro() is true, i.e., when running a macro or executing an IJ.run(...) call.

### setActivated

public void setActivated()
Called by ImageWindow.windowActivated(); to end waiting in waitTillActivated.

### setDeactivated

public void setDeactivated()
Called by `new StackWindow(ImagePlus)` before showing the StackWindow, to prepare for waitTillActivated().

### getImage

public Image getImage()
Returns this image as a AWT image.

### getBufferedImage

public BufferedImage getBufferedImage()
Returns a copy of this image as an 8-bit or RGB BufferedImage.

See Also:
  - `ShortProcessor.get16BitBufferedImage()`

### getID

public int getID()
Returns this image's unique numeric ID.

### setImage

public void setImage(Image image)
Replaces the image, if any, with the one specified. Throws an IllegalStateException if an error occurs while loading the image.

### convertToImageProcessor

public static ImageProcessor convertToImageProcessor(BufferedImage img, int band)
Extract pixels as an ImageProcessor from a single band of a BufferedImage.

Parameters:
  `img` -
  `band` -
Returns:

### setImage

public void setImage(ImagePlus imp)
Replaces this image with the specified ImagePlus. May not work as expected if 'imp' is a CompositeImage and this image is not.

### setProcessor

public void setProcessor(ImageProcessor ip)
Replaces the ImageProcessor with the one specified and updates the display. With stacks, the ImageProcessor must be the same type as the other images in the stack and it must be the same width and height.

### setProcessor

public void setProcessor(String title, ImageProcessor ip)
Replaces the ImageProcessor with the one specified and updates the display. With stacks, the ImageProcessor must be the same type as other images in the stack and it must be the same width and height. Set 'title' to null to leave the title unchanged.

### setStack

public void setStack(ImageStack stack)
Replaces the image with the specified stack and updates the display.

### setStack

public void setStack(String title, ImageStack newStack)
Replaces the image with the specified stack and updates the display. Set 'title' to null to leave the title unchanged.

### setStack

public void setStack(ImageStack newStack, int channels, int slices, int frames)

### setFileInfo

public void setFileInfo(FileInfo fi)
Saves this image's FileInfo so it can be later retieved using getOriginalFileInfo().

### getWindow

public ImageWindow getWindow()
Returns the ImageWindow that is being used to display this image. Returns null if show() has not be called or the ImageWindow has been closed.

### isVisible

public boolean isVisible()
Returns true if this image is currently being displayed in a window.

### setWindow

public void setWindow(ImageWindow win)
This method should only be called from an ImageWindow.

### getCanvas

public ImageCanvas getCanvas()
Returns the ImageCanvas being used to display this image, or null.

### setColor

public void setColor(Color c)
Sets current foreground color.

### isProcessor

public boolean isProcessor()

### getProcessor

public ImageProcessor getProcessor()
Returns a reference to the current ImageProcessor. If there is no ImageProcessor, it creates one. Returns null if this ImagePlus contains no ImageProcessor and no AWT Image. Sets the line width to the current line width and sets the calibration table if the image is density calibrated.

### trimProcessor

public void trimProcessor()
Frees RAM by setting the snapshot (undo) buffer in the current ImageProcessor to null.

### getMask

public ImageProcessor getMask()
For images with irregular ROIs, returns a byte mask, otherwise, returns null. Mask pixels have a non-zero value.and the dimensions of the mask are equal to the width and height of the ROI.

See Also:
  - `createRoiMask()`
  - `createThresholdMask()`

### createRoiMask

public ByteProcessor createRoiMask()
Returns an 8-bit binary (foreground=255, background=0) ROI or overlay mask that has the same dimensions as this image. Creates an ROI mask If the image has both both an ROI and an overlay. Set the threshold of the mask to 255.

See Also:
  - `createThresholdMask()`
  - `Roi.getMask()`

### createThresholdMask

public ByteProcessor createThresholdMask()
Returns an 8-bit binary threshold mask (foreground=255, background=0) that has the same dimensions as this image. The threshold of the mask is set to 255.

See Also:
  - `Thresholder.createMask(ij.ImagePlus)`
  - `ImageProcessor.createMask()`

### getStatistics

public ImageStatistics getStatistics()
Get calibrated statistics for this image or ROI, including histogram, area, mean, min and max, standard deviation and mode. This code demonstrates how to get the area, mean max and median of the current image or selection:

             imp = IJ.getImage();
             stats = imp.getStatistics();
             IJ.log("Area: "+stats.area);
             IJ.log("Mean: "+stats.mean);
             IJ.log("Max: "+stats.max);

Returns:
  an `ImageStatistics` object
See Also:
  - `getAllStatistics()`
  - `getRawStatistics()`
  - `ImageProcessor.getStats()`

### getAllStatistics

public ImageStatistics getAllStatistics()
This method returns complete calibrated statistics for this image or ROI (with "Limit to threshold"), but it is up to 70 times slower than getStatistics().

Returns:
  an `ImageStatistics` object
See Also:
  - `getStatistics()`
  - `ImageProcessor.getStatistics()`

### getRawStatistics

public ImageStatistics getRawStatistics()

### getStatistics

public ImageStatistics getStatistics(int mOptions)
Returns an ImageStatistics object generated using the specified measurement options.

See Also:
  - `Measurements`

### getStatistics

public ImageStatistics getStatistics(int mOptions, int nBins)
Returns an ImageStatistics object generated using the specified measurement options and histogram bin count.

### getStatistics

public ImageStatistics getStatistics(int mOptions, int nBins, double histMin, double histMax)
Returns an ImageStatistics object generated using the specified measurement options, histogram bin count and histogram range.

### getTitle

public String getTitle()
Returns the image name.

### getShortTitle

public String getShortTitle()
If the image title is a file name, returns the name without the extension and with spaces removed, otherwise returns the title shortened to the first space.

### setTitle

public void setTitle(String title)
Sets the image name.

### getWidth

public int getWidth()
Returns the width of this image in pixels.

### getHeight

public int getHeight()
Returns the height of this image in pixels.

### getSizeInBytes

public double getSizeInBytes()
Returns the size of this image in bytes.

### getStackSize

public int getStackSize()
Returns the number of stack images.

### getImageStackSize

public int getImageStackSize()
If this is a stack, returns the actual number of images in the stack, else returns 1.

### setDimensions

public void setDimensions(int nChannels, int nSlices, int nFrames)
Sets the 3rd, 4th and 5th dimensions, where `nChannels`*`nSlices`*`nFrames` must be equal to the stack size.

### isHyperStack

public boolean isHyperStack()
Returns 'true' if this image has more than three dimensions.

### getNDimensions

public int getNDimensions()
Returns the number of dimensions (2, 3, 4 or 5).

### isDisplayedHyperStack

public boolean isDisplayedHyperStack()
Returns 'true' if this is a hyperstack currently being displayed in a StackWindow.

### getNChannels

public int getNChannels()
Returns the number of channels.

### getNSlices

public int getNSlices()
Returns the image depth (number of z-slices).

### getNFrames

public int getNFrames()
Returns the number of frames (time-points).

### getDimensions

public int[] getDimensions()
Returns the dimensions of this image (width, height, nChannels, nSlices, nFrames) as a 5 element int array.

### getDimensions

public int[] getDimensions(boolean varify)

### getType

public int getType()
Returns the current image type (ImagePlus.GRAY8, ImagePlus.GRAY16, ImagePlus.GRAY32, ImagePlus.COLOR_256 or ImagePlus.COLOR_RGB).

See Also:
  - `getBitDepth()`

### getBitDepth

public int getBitDepth()
Returns the bit depth, 8, 16, 24 (RGB) or 32, or 0 if the bit depth is unknown. RGB images actually use 32 bits per pixel.

### getBytesPerPixel

public int getBytesPerPixel()
Returns the number of bytes per pixel.

### setType

protected void setType(int type)

### setTypeToColor256

public void setTypeToColor256()

### getStringProperty

public String getStringProperty(String key)
Returns the string value from the "Info" property string associated with 'key', or null if the key is not found. Works with DICOM tags and Bio-Formats metadata.

See Also:
  - `getNumericProperty(java.lang.String)`
  - `getInfoProperty()`
  - `getProp(java.lang.String)`
  - `setProp(java.lang.String, java.lang.String)`

### getNumericProperty

public double getNumericProperty(String key)
Returns the numeric value from the "Info" property string associated with 'key', or NaN if the key is not found or the value associated with the key is not numeric. Works with DICOM tags and Bio-Formats metadata.

See Also:
  - `getStringProperty(java.lang.String)`
  - `getInfoProperty()`

### setProp

public void setProp(String key, String value)
Adds a key-value pair to this image's string properties. The key-value pair is removed if 'value' is null. The properties persist if the image is saved in TIFF format. Add a "HideInfo" property (e.g. set("HideInfo","true")) to prevent the properties from being displayed by the Image/Show Info command.

### setProp

public void setProp(String key, double value)
Saves a persistent numeric propery. The property is removed if 'value' is NaN.

See Also:
  - `getNumericProp(java.lang.String)`

### getProp

public String getProp(String key)
Returns as a string the image property associated with the specified key or null if the property is not found.

See Also:
  - `setProp(java.lang.String, java.lang.String)`
  - `getNumericProp(java.lang.String)`
  - `getStringProperty(java.lang.String)`

### getNumericProp

public double getNumericProp(String key)
Returns the numeric property associated with the specified key or NaN if the property is not found.

See Also:
  - `setProp(String,double)`
  - `getProp(java.lang.String)`

### getPropertiesAsArray

public String[] getPropertiesAsArray()
Used for saving string properties in TIFF header.

### getPropsInfo

public String getPropsInfo()
Returns information displayed by Image/Show Info command.

### setProperties

public void setProperties(String[] props)
Creates a set of image properties from an array of strings.

See Also:
  - `getPropertiesAsArray()`
  - `getProp(String)`
  - `setProp(String,String)`

### getInfoProperty

public String getInfoProperty()
Returns the "Info" property string, or null if it is not found.

See Also:
  - `getProp(java.lang.String)`
  - `setProp(java.lang.String, java.lang.String)`

### getProperty

public Object getProperty(String key)
Returns the property associated with 'key', or null if it is not found.

See Also:
  - `getProp(java.lang.String)`
  - `setProp(java.lang.String, java.lang.String)`
  - `getStringProperty(java.lang.String)`
  - `getNumericProperty(java.lang.String)`
  - `getInfoProperty()`

### setProperty

public void setProperty(String key, Object value)
Adds a key-value pair to this image's properties. The key is removed from the properties table if value is null.

See Also:
  - `getProp(java.lang.String)`
  - `setProp(java.lang.String, java.lang.String)`

### getProperties

public Properties getProperties()
Returns this image's Properties. May return null.

### createLut

public LookUpTable createLut()
Creates a LookUpTable object that corresponds to this image.

### isInvertedLut

public boolean isInvertedLut()
Returns true is this image uses an inverting LUT that displays zero as white and 255 as black.

### getPixel

public int[] getPixel(int x, int y)
Returns the pixel value at (x,y) as a 4 element array. Grayscale values are retuned in the first element. RGB values are returned in the first 3 elements. For indexed color images, the RGB values are returned in the first 3 three elements and the index (0-255) is returned in the last.

### createEmptyStack

public ImageStack createEmptyStack()
Returns an empty image stack that has the same width, height and color table as this image.

### getStack

public ImageStack getStack()
Returns the image stack. The stack may have only one slice. After adding or removing slices, call `setStack()` to update the image and the window that is displaying it.

See Also:
  - `setStack(ij.ImageStack)`

### getImageStack

public ImageStack getImageStack()
Returns the base image stack.

### getCurrentSlice

public int getCurrentSlice()
Returns the current stack index (one-based) or 1 if this is a single image.

### getChannel

public int getChannel()

### getSlice

public int getSlice()

### getFrame

public int getFrame()

### killStack

public void killStack()

### setPosition

public void setPosition(int channel, int slice, int frame)
Sets the current hyperstack position and updates the display, where 'channel', 'slice' and 'frame' are one-based indexes.

### setPositionWithoutUpdate

public void setPositionWithoutUpdate(int channel, int slice, int frame)
Sets the current hyperstack position without updating the display, where 'channel', 'slice' and 'frame' are one-based indexes.

### setC

public void setC(int channel)
Sets the hyperstack channel position (one based).

### setZ

public void setZ(int slice)
Sets the hyperstack slice position (one based).

### setT

public void setT(int frame)
Sets the hyperstack frame position (one based).

### getC

public int getC()
Returns the current hyperstack channel position.

### getZ

public int getZ()
Returns the current hyperstack slice position.

### getT

public int getT()
Returns the current hyperstack frame position.

### getStackIndex

public int getStackIndex(int channel, int slice, int frame)
Returns that stack index (one-based) corresponding to the specified position.

### resetStack

public void resetStack()

### setPosition

public void setPosition(int n)
Set the current hyperstack position based on the stack index 'n' (one-based).

### convertIndexToPosition

public int[] convertIndexToPosition(int n)
Converts the stack index 'n' (one-based) into a hyperstack position (channel, slice, frame).

### setSlice

public void setSlice(int n)
Displays the specified stack image, where 1<=n<=stackSize. Does nothing if this image is not a stack.

See Also:
  - `setPosition(int, int, int)`
  - `setC(int)`
  - `setZ(int)`
  - `setT(int)`

### setSliceWithoutUpdate

public void setSliceWithoutUpdate(int n)
Displays the specified stack image (1<=n<=stackSize) without updating the display.

### getRoi

public Roi getRoi()
Returns the current selection, or null if there is no selection.

### setRoi

public void setRoi(Roi newRoi)
Assigns the specified ROI to this image and displays it. Any existing ROI is deleted if `roi` is null or its width or height is zero.

### setRoi

public void setRoi(Roi newRoi, boolean updateDisplay)
Assigns 'newRoi' to this image and displays it if 'updateDisplay' is true.

### setRoi

public void setRoi(int x, int y, int width, int height)
Creates a rectangular selection.

### setRoi

public void setRoi(Rectangle r)
Creates a rectangular selection.

### createNewRoi

public void createNewRoi(int sx, int sy)
Starts the process of creating a new selection, where sx and sy are the starting screen coordinates. The selection type is determined by which tool in the tool bar is active. The user interactively sets the selection size and shape.

### deleteRoi

public void deleteRoi()
Deletes the current region of interest. Makes a copy of the ROI so it can be recovered by Edit/Selection/Restore Selection.

### removeScale

public void removeScale()
Removes the spatial scaling of this image.

### okToDeleteRoi

public boolean okToDeleteRoi()

### killRoi

public void killRoi()
Deletes the current region of interest.

### resetRoi

public void resetRoi()
Deletes the current region of interest.

### saveRoi

public void saveRoi()

### restoreRoi

public void restoreRoi()

### revert

public void revert()
Implements the File/Revert command.

### getFileInfo

public FileInfo getFileInfo()
Returns a FileInfo object containing information, including the pixel array, needed to save this image. Use getOriginalFileInfo() to get a copy of the FileInfo object used to open the image.

See Also:
  - `FileInfo`
  - `getOriginalFileInfo()`
  - `setFileInfo(ij.io.FileInfo)`

### getOriginalFileInfo

public FileInfo getOriginalFileInfo()
Returns the FileInfo object that was used to open this image. Returns null for images created using the File/New command.

See Also:
  - `FileInfo`
  - `getFileInfo()`

### imageUpdate

public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h)
Used by ImagePlus to monitor loading of images.

Specified by:
  `imageUpdate` in interface `ImageObserver`

### flush

public void flush()
Sets the ImageProcessor, Roi, AWT Image and stack image arrays to null. Does nothing if the image is locked.

### setIgnoreFlush

public void setIgnoreFlush(boolean ignoreFlush)

### duplicate

public ImagePlus duplicate()
Returns a copy of this image or stack.

See Also:
  - `crop()`
  - `Duplicator.run(java.lang.String)`

### resize

public ImagePlus resize(int dstWidth, int dstHeight, String options)
Returns a scaled copy of this image or ROI, where the 'options' string can contain 'none', 'bilinear'. 'bicubic', 'average' and 'constrain'.

### resize

public ImagePlus resize(int dstWidth, int dstHeight, int dstDepth, String options)
Returns a scaled copy of this image or ROI, where the 'options' string can contain 'none', 'bilinear'. 'bicubic', 'average' and 'constrain'.

### crop

public ImagePlus crop()
Returns a copy this image or stack slice, cropped if there is an ROI.

See Also:
  - `duplicate()`
  - `Duplicator.crop(ij.ImagePlus)`

### crop

public ImagePlus crop(String options)
Returns a cropped copy this image or stack, where 'options' can be "stack", "slice", "whole-slice" or a range (e.g., "20-30").

See Also:
  - `duplicate()`
  - `crop()`
  - `Duplicator.crop(ij.ImagePlus)`

### crop

public ImagePlus[] crop(Roi[] rois, String options)
Returns an array of cropped images based on the provided list of rois. 'options' applies with stacks and can be "stack", "slice" or a range (e.g., "20-30").

See Also:
  - `crop(ij.gui.Roi[])`

### crop

public ImagePlus[] crop(Roi[] rois)
Multi-roi cropping with default "slice" option.

### cropAndSave

public void cropAndSave(Roi[] rois, String directory, String format)
Saves the contents of the ROIs in this overlay as separate images, where 'directory' is the directory path and 'format' is "tif", "png" or "jpg". Set 'format' to "show" and the images will be displayed in a stack and not saved.

### createImagePlus

public ImagePlus createImagePlus()
Returns a new ImagePlus with this image's attributes (e.g. spatial scale), but no image.

### createHyperStack

public ImagePlus createHyperStack(String title, int channels, int slices, int frames, int bitDepth)
This method has been replaced by IJ.createHyperStack().

### copyScale

public void copyScale(ImagePlus imp)
Copies the calibration of the specified image to this image.

### copyAttributes

public void copyAttributes(ImagePlus imp)
Used internally.

### startTiming

public void startTiming()
Calls System.currentTimeMillis() to save the current time so it can be retrieved later using getStartTime() to calculate the elapsed time of an operation.

### getStartTime

public long getStartTime()
Returns the time in milliseconds when startTiming() was last called.

### getCalibration

public Calibration getCalibration()
Returns this image's calibration.

### setCalibration

public void setCalibration(Calibration cal)
Sets this image's calibration.

### setGlobalCalibration

public void setGlobalCalibration(Calibration global)
Sets the system-wide calibration.

### getGlobalCalibration

public Calibration getGlobalCalibration()
Returns the system-wide calibration, or null.

### getStaticGlobalCalibration

public static Calibration getStaticGlobalCalibration()
This is a version of getGlobalCalibration() that can be called from a static context.

### getLocalCalibration

public Calibration getLocalCalibration()
Returns this image's local calibration, ignoring the "Global" calibration flag.

### setIgnoreGlobalCalibration

public void setIgnoreGlobalCalibration(boolean ignoreGlobalCalibration)

### mouseMoved

public void mouseMoved(int x, int y)
Displays the cursor coordinates and pixel value in the status bar. Called by ImageCanvas when the mouse moves.

### updateStatusbarValue

public void updateStatusbarValue()
Redisplays the (x,y) coordinates and pixel value (which may have changed) in the status bar. Called by the Next Slice and Previous Slice commands to update the z-coordinate and pixel value.

### getLocationAsString

public String getLocationAsString(int x, int y)
Converts the current cursor location to a string.

### cut

public void cut()
Copies the contents of the current selection to the internal clipboard and then clears the selection.

### copy

public void copy()
Copies the contents of the current selection, or the entire image if there is no selection, to the internal clipboard.

### copy

public void copy(boolean cut)
Copies the contents of the current selection to the internal clipboard. Copies the entire image if there is no selection. Also clears the selection if `cut` is true.

### paste

public void paste()
Inserts the contents of the internal clipboard into this image. If there is a selection the same size as the image on the clipboard, the image is inserted into that selection, otherwise the selection is inserted into the center of the image.

### paste

public void paste(int x, int y)
Inserts the contents of the internal clipboard at the specified location, without updating the display.

### paste

public void paste(int x, int y, String mode)
Copies the contents of the internal clipboard to the specified location using the specified transfer mode ("Copy", "Blend", "Average", "Difference", "Transparent", "Transparent2", "AND", "OR", "XOR", "Add", "Subtract", "Multiply", or "Divide"). The display is not updating.

### getClipboard

public static ImagePlus getClipboard()
Returns the internal clipboard or null if the internal clipboard is empty.

### resetClipboard

public static void resetClipboard()
Clears the internal clipboard.

### copyToSystem

public void copyToSystem()
Copies the contents of the current selection, or the entire image if there is no selection, to the system clipboard.

### notifyListeners

protected void notifyListeners(int id)

### addImageListener

public static void addImageListener(ImageListener listener)

### removeImageListener

public static void removeImageListener(ImageListener listener)

### getListeners

public static Vector getListeners()

### logImageListeners

public static void logImageListeners()
For debug purposes, writes all registered (and possibly, forgotten) ImageListeners to the log window

### setOpenAsHyperStack

public void setOpenAsHyperStack(boolean openAsHyperStack)

### getOpenAsHyperStack

public boolean getOpenAsHyperStack()

### isComposite

public boolean isComposite()
Returns true if this is a CompositeImage.

### getCompositeMode

public int getCompositeMode()
Returns the display mode (IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE) if this is a CompositeImage, otherwise returns -1.

### setDisplayRange

public void setDisplayRange(double min, double max)
Sets the display range of the current channel. With non-composite images it is identical to ip.setMinAndMax(min, max). Call updateAndDraw() to update the display.

### getDisplayRangeMin

public double getDisplayRangeMin()
Returns the display range minimum of the current channel.

See Also:
  - `ImageProcessor.getMin()`
  - `getLuts()`

### getDisplayRangeMax

public double getDisplayRangeMax()
Returns the display range maximum of the current channel.

See Also:
  - `ImageProcessor.getMax()`
  - `getLuts()`

### setDisplayRange

public void setDisplayRange(double min, double max, int channels)
Sets the display range of specified channels in an RGB image, where 4=red, 2=green, 1=blue, 6=red+green, etc. With non-RGB images, this method is identical to setDisplayRange(min, max). This method is used by the Image/Adjust/Color Balance tool .

### resetDisplayRange

public void resetDisplayRange()

### setDefaultDisplayRange

public void setDefaultDisplayRange(double min, double max)

### setAutoThreshold

public void setAutoThreshold(String method)
Uses the specified method to set the threshold levels of this image. Use AutoThresholder.getMethods() to get a list of the available methods. Add " dark" to the method name if the image has a dark background. Add " 16-bit" to use the full 16-bit histogram when calculating the threshold of 16-bit images. Add " stack" to use the histogram of the entire stack when calculating the threshold.

### isThreshold

public boolean isThreshold()
Returns 'true' if this image is thresholded.

See Also:
  - `ImageProcessor.isThreshold()`

### setDefault16bitRange

public static void setDefault16bitRange(int bitDepth)
Set the default 16-bit display range, where 'bitDepth' must be 0 (auto-scaling), 8 (0-255), 10 (0-1023), 12 (0-4095, 14 (0-16383), 15 (0-32767) or 16 (0-65535).

### getDefault16bitRange

public static int getDefault16bitRange()
Returns the default 16-bit display range, 0 (auto-scaling), 8, 10, 12, 14, 15 or 16.

### updatePosition

public void updatePosition(int c, int z, int t)

### flatten

public ImagePlus flatten()
Returns a "flattened" version of this image, or stack slice, in RGB format.

### flattenStack

public void flattenStack()
Flattens all slices of this stack or HyperStack.

Throws:
  `UnsupportedOperationException` - if this image
  does not have an overlay and the RoiManager overlay is null.
  Non-RGB stacks are converted to RGB.
  Copied from OverlayCommands and modified by Marcel Boeglin on 2014.01.08 to work with HyperStacks.

### tempOverlay

public boolean tempOverlay()

### setLut

public void setLut(LUT lut)
Assigns a LUT (lookup table) to this image.

See Also:
  - `Opener.openLut(java.lang.String)`

### setOverlay

public void setOverlay(Overlay overlay)
Installs a list of ROIs that will be drawn on this image as a non-destructive overlay.

See Also:
  - `Roi.setStrokeColor(java.awt.Color)`
  - `Roi.setStrokeWidth(float)`
  - `Roi.setFillColor(java.awt.Color)`
  - `Roi.setLocation(int, int)`
  - `Roi.setNonScalable(boolean)`

### setOverlay

public void setOverlay(Shape shape, Color color, BasicStroke stroke)
Creates an Overlay from the specified Shape, Color and BasicStroke, and assigns it to this image.

See Also:
  - `setOverlay(ij.gui.Overlay)`
  - `Roi.setStrokeColor(java.awt.Color)`
  - `Roi.setStrokeWidth(float)`

### setOverlay

public void setOverlay(Roi roi, Color strokeColor, int strokeWidth, Color fillColor)
Creates an Overlay from the specified ROI, and assigns it to this image.

See Also:
  - `setOverlay(ij.gui.Overlay)`

### getOverlay

public Overlay getOverlay()
Returns the current overly, or null if this image does not have an overlay.

### setHideOverlay

public void setHideOverlay(boolean hide)

### getHideOverlay

public boolean getHideOverlay()

### toggleOverlay

public boolean toggleOverlay()

### setAntialiasRendering

public void setAntialiasRendering(boolean antialiasRendering)
Enable/disable use of antialiasing by the flatten() method.

### clone

public Object clone()
Returns a shallow copy of this ImagePlus.

Overrides:
  `clone` in class `Object`

### plotHistogram

public PlotWindow plotHistogram()
Plots a 256 bin histogram of this image and returns the PlotWindow.

### plotHistogram

public PlotWindow plotHistogram(int bins)
Plots a histogram of this image using the specified number of bins and returns the PlotWindow.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### setIJMenuBar

public void setIJMenuBar(boolean b)

### setIJMenuBar

public boolean setIJMenuBar()

### hasImageStack

public boolean hasImageStack()
Returns 'true' if this ImagePlus contains an ImageStack.

See Also:
  - `getStackSize()`
  - `getNChannels()`
  - `getNSlices()`
  - `getNFrames()`
  - `getNDimensions()`

### isStack

public boolean isStack()
Deprecated.
Replaced by ImagePlus.hasImageStack()

### setPlot

public void setPlot(Plot plot)

### getPlot

public Plot getPlot()

### getImageProperties

public Properties getImageProperties()

### isRGB

public boolean isRGB()

### setBorderColor

public void setBorderColor(Color borderColor)

### windowActivated

public boolean windowActivated()