Package ome.codecs.gui
Class AWTImageTools
java.lang.Object
ome.codecs.gui.AWTImageTools
A utility class with convenience methods for manipulating images
in
BufferedImage form.
To work with images in primitive array form,
use the ome.codecs.ImageTools class.
Much code was stolen and adapted from
DrLaszloJamf's posts
on the Java forums.- Author:
- Curtis Rueden ctrueden at wisc.edu
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic BufferedImageconstructImage(int c, int type, int w, int h, boolean interleaved, boolean banded, DataBuffer buffer) Creates an image with the given DataBuffer.static BufferedImageconstructImage(int c, int type, int w, int h, boolean interleaved, boolean banded, DataBuffer buffer, ColorModel colorModel) Creates an image with the given DataBuffer.static byte[][]getBytes(BufferedImage image) Extracts pixel data as arrays of unsigned bytes, one per channel.static byte[]getBytes(BufferedImage img, boolean separated) Get the bytes from an image, merging the channels as necessary.static byte[][]Extracts pixel data as arrays of unsigned bytes, one per channel.static byte[][]getBytes(WritableRaster r, int x, int y, int w, int h) Extracts pixel data as arrays of unsigned bytes, one per channel.static double[][]getDoubles(BufferedImage image) Extracts pixel data as arrays of doubles, one per channel.static double[][]Extracts pixel data as arrays of doubles, one per channel.static double[][]getDoubles(WritableRaster r, int x, int y, int w, int h) Extracts pixel data as arrays of doubles, one per channel.static float[][]getFloats(BufferedImage image) Extracts pixel data as arrays of floats, one per channel.static float[][]Extracts pixel data as arrays of floats, one per channel.static float[][]getFloats(WritableRaster r, int x, int y, int w, int h) Extracts pixel data as arrays of floats, one per channel.static int[][]getInts(BufferedImage image) Extracts pixel data as arrays of signed integers, one per channel.static int[][]Extracts pixel data as arrays of signed integers, one per channel.static int[][]getInts(WritableRaster r, int x, int y, int w, int h) Extracts pixel data as arrays of signed integers, one per channel.static byte[][]getPixelBytes(BufferedImage img, boolean little) Return a 2D array of bytes representing the image.static byte[][]getPixelBytes(BufferedImage img, boolean little, int x, int y, int w, int h) Return a 2D array of bytes representing the image.static byte[][]getPixelBytes(WritableRaster r, boolean little) Return a 2D array of bytes representing the image.static byte[][]getPixelBytes(WritableRaster r, boolean little, int x, int y, int w, int h) Return a 2D array of bytes representing the image.static ObjectgetPixels(BufferedImage image) Gets the image's pixel data as arrays of primitives, one per channel.static ObjectgetPixels(BufferedImage image, int x, int y, int w, int h) Gets the image's pixel data as arrays of primitives, one per channel.static ObjectgetPixels(WritableRaster raster) Gets the raster's pixel data as arrays of primitives, one per channel.static ObjectgetPixels(WritableRaster raster, int x, int y, int w, int h) Gets the raster's pixel data as arrays of primitives, one per channel.static short[][]getShorts(BufferedImage image) Extracts pixel data as arrays of unsigned shorts, one per channel.static short[][]Extracts pixel data as arrays of unsigned shorts, one per channel.static short[][]getShorts(WritableRaster r, int x, int y, int w, int h) Extracts pixel data as arrays of unsigned shorts, one per channel.static ColorModelmakeColorModel(int c, int dataType) Gets a color model for the given number of color components.static ColorSpacemakeColorSpace(int c) Gets a color space for the given number of color components.static BufferedImagemakeImage(byte[][] data, int w, int h, boolean signed) Creates an image from the given byte data.static BufferedImagemakeImage(byte[][] data, int w, int h, int bpp, boolean fp, boolean little, boolean signed) Creates an image from the given raw byte array, performing any necessary type conversions.static BufferedImagemakeImage(byte[] data, int w, int h, boolean signed) Creates an image from the given single-channel byte data.static BufferedImagemakeImage(byte[] data, int w, int h, int c, boolean interleaved, boolean signed) Creates an image from the given byte data.static BufferedImagemakeImage(byte[] data, int w, int h, int c, boolean interleaved, int bpp, boolean fp, boolean little, boolean signed) Creates an image from the given raw byte array, performing any necessary type conversions.static BufferedImagemakeImage(double[][] data, int w, int h) Creates an image from the given double-precision floating point data.static BufferedImagemakeImage(double[] data, int w, int h) Creates an image from the given single-channel double data.static BufferedImagemakeImage(double[] data, int w, int h, int c, boolean interleaved) Creates an image from the given double data.static BufferedImagemakeImage(float[][] data, int w, int h) Creates an image from the given single-precision floating point data.static BufferedImagemakeImage(float[] data, int w, int h) Creates an image from the given single-channel float data.static BufferedImagemakeImage(float[] data, int w, int h, int c, boolean interleaved) Creates an image from the given float data.static BufferedImagemakeImage(int[][] data, int w, int h, boolean signed) Creates an image from the given int data.static BufferedImagemakeImage(int[] data, int w, int h, boolean signed) Creates an image from the given single-channel int data.static BufferedImagemakeImage(int[] data, int w, int h, int c, boolean interleaved, boolean signed) Creates an image from the given int data.static BufferedImagemakeImage(short[][] data, int w, int h, boolean signed) Creates an image from the given short data.static BufferedImagemakeImage(short[] data, int w, int h, boolean signed) Creates an image from the given single-channel short data.static BufferedImagemakeImage(short[] data, int w, int h, int c, boolean interleaved, boolean signed) Creates an image from the given short data.static BufferedImagemakeRGBImage(byte[][] data, int w, int h) static BufferedImagemakeRGBImage(byte[] data, int c, int w, int h, boolean interleaved)
-
Field Details
-
OBS
ImageObserver for working with AWT images.
-
-
Method Details
-
makeImage
Creates an image from the given single-channel byte data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.signed- Whether the byte values should be treated as signed (-128 to 127) instead of unsigned (0 to 255).
-
makeImage
Creates an image from the given single-channel short data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.signed- Whether the short values should be treated as signed (-32768 to 32767) instead of unsigned (0 to 65535).
-
makeImage
Creates an image from the given single-channel int data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.signed- Whether the int values should be treated as signed (-2^31 to 2^31-1) instead of unsigned (0 to 2^32-1).
-
makeImage
Creates an image from the given single-channel float data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.
-
makeImage
Creates an image from the given single-channel double data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.
-
makeImage
public static BufferedImage makeImage(byte[] data, int w, int h, int c, boolean interleaved, boolean signed) Creates an image from the given byte data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.c- Number of channels.interleaved- If set, the channels are assumed to be interleaved; otherwise they are assumed to be sequential. For example, for RGB data, the pattern "RGBRGBRGB..." is interleaved, while "RRR...GGG...BBB..." is sequential.signed- Whether the byte values should be treated as signed (-128 to 127) instead of unsigned (0 to 255).
-
makeImage
public static BufferedImage makeImage(short[] data, int w, int h, int c, boolean interleaved, boolean signed) Creates an image from the given short data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.c- Number of channels.interleaved- If set, the channels are assumed to be interleaved; otherwise they are assumed to be sequential. For example, for RGB data, the pattern "RGBRGBRGB..." is interleaved, while "RRR...GGG...BBB..." is sequential.signed- Whether the short values should be treated as signed (-32768 to 32767) instead of unsigned (0 to 65535).
-
makeImage
public static BufferedImage makeImage(int[] data, int w, int h, int c, boolean interleaved, boolean signed) Creates an image from the given int data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.c- Number of channels.interleaved- If set, the channels are assumed to be interleaved; otherwise they are assumed to be sequential. For example, for RGB data, the pattern "RGBRGBRGB..." is interleaved, while "RRR...GGG...BBB..." is sequential.signed- Whether the int values should be treated as signed (-2^31 to 2^31-1) instead of unsigned (0 to 2^32-1).
-
makeImage
Creates an image from the given float data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.c- Number of channels.interleaved- If set, the channels are assumed to be interleaved; otherwise they are assumed to be sequential. For example, for RGB data, the pattern "RGBRGBRGB..." is interleaved, while "RRR...GGG...BBB..." is sequential.
-
makeImage
Creates an image from the given double data.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.c- Number of channels.interleaved- If set, the channels are assumed to be interleaved; otherwise they are assumed to be sequential. For example, for RGB data, the pattern "RGBRGBRGB..." is interleaved, while "RRR...GGG...BBB..." is sequential.
-
makeImage
Creates an image from the given byte data.- Parameters:
data- Array containing image data. It is assumed that each channel corresponds to one element of the array. For example, for RGB data, data[0] is R, data[1] is G, and data[2] is B.w- Width of image plane.h- Height of image plane.signed- Whether the byte values should be treated as signed (-128 to 127) instead of unsigned (0 to 255).
-
makeImage
Creates an image from the given short data.- Parameters:
data- Array containing image data. It is assumed that each channel corresponds to one element of the array. For example, for RGB data, data[0] is R, data[1] is G, and data[2] is B.w- Width of image plane.h- Height of image plane.signed- Whether the short values should be treated as signed (-32768 to 32767) instead of unsigned (0 to 65535).
-
makeImage
Creates an image from the given int data.- Parameters:
data- Array containing image data. It is assumed that each channel corresponds to one element of the array. For example, for RGB data, data[0] is R, data[1] is G, and data[2] is B.w- Width of image plane.h- Height of image plane.signed- Whether the int values should be treated as signed (-2^31 to 2^31-1) instead of unsigned (0 to 2^32-1).
-
makeImage
Creates an image from the given single-precision floating point data.- Parameters:
data- Array containing image data. It is assumed that each channel corresponds to one element of the array. For example, for RGB data, data[0] is R, data[1] is G, and data[2] is B.w- Width of image plane.h- Height of image plane.
-
makeImage
Creates an image from the given double-precision floating point data.- Parameters:
data- Array containing image data. It is assumed that each channel corresponds to one element of the array. For example, for RGB data, data[0] is R, data[1] is G, and data[2] is B.w- Width of image plane.h- Height of image plane.
-
makeImage
public static BufferedImage makeImage(byte[] data, int w, int h, int c, boolean interleaved, int bpp, boolean fp, boolean little, boolean signed) Creates an image from the given raw byte array, performing any necessary type conversions.- Parameters:
data- Array containing image data.w- Width of image plane.h- Height of image plane.c- Number of channels.interleaved- If set, the channels are assumed to be interleaved; otherwise they are assumed to be sequential. For example, for RGB data, the pattern "RGBRGBRGB..." is interleaved, while "RRR...GGG...BBB..." is sequential.bpp- Denotes the number of bytes in the returned primitive type (e.g. if bpp == 2, we should return an array of type short).fp- If set and bpp == 4 or bpp == 8, then return floats or doubles.little- Whether byte array is in little-endian order.signed- Whether the data values should be treated as signed instead of unsigned.
-
makeImage
public static BufferedImage makeImage(byte[][] data, int w, int h, int bpp, boolean fp, boolean little, boolean signed) Creates an image from the given raw byte array, performing any necessary type conversions.- Parameters:
data- Array containing image data, one channel per element.w- Width of image plane.h- Height of image plane.bpp- Denotes the number of bytes in the returned primitive type (e.g. if bpp == 2, we should return an array of type short).fp- If set and bpp == 4 or bpp == 8, then return floats or doubles.little- Whether byte array is in little-endian order.signed- Whether the data values should be treated as signed instead of unsigned.
-
makeRGBImage
-
makeRGBImage
-
constructImage
public static BufferedImage constructImage(int c, int type, int w, int h, boolean interleaved, boolean banded, DataBuffer buffer) Creates an image with the given DataBuffer. -
constructImage
public static BufferedImage constructImage(int c, int type, int w, int h, boolean interleaved, boolean banded, DataBuffer buffer, ColorModel colorModel) Creates an image with the given DataBuffer. -
getPixels
Gets the image's pixel data as arrays of primitives, one per channel. The returned type will be either byte[][], short[][], int[][], float[][] or double[][], depending on the image's transfer type. -
getPixels
Gets the image's pixel data as arrays of primitives, one per channel. The returned type will be either byte[][], short[][], int[][], float[][] or double[][], depending on the image's transfer type. -
getPixels
Gets the raster's pixel data as arrays of primitives, one per channel. The returned type will be either byte[][], short[][], int[][], float[][] or double[][], depending on the raster's transfer type. -
getPixels
Gets the raster's pixel data as arrays of primitives, one per channel. The returned type will be either byte[][], short[][], int[][], float[][] or double[][], depending on the raster's transfer type. -
getBytes
Extracts pixel data as arrays of unsigned bytes, one per channel. -
getBytes
Extracts pixel data as arrays of unsigned bytes, one per channel. -
getBytes
Extracts pixel data as arrays of unsigned bytes, one per channel. -
getShorts
Extracts pixel data as arrays of unsigned shorts, one per channel. -
getShorts
Extracts pixel data as arrays of unsigned shorts, one per channel. -
getShorts
Extracts pixel data as arrays of unsigned shorts, one per channel. -
getInts
Extracts pixel data as arrays of signed integers, one per channel. -
getInts
Extracts pixel data as arrays of signed integers, one per channel. -
getInts
Extracts pixel data as arrays of signed integers, one per channel. -
getFloats
Extracts pixel data as arrays of floats, one per channel. -
getFloats
Extracts pixel data as arrays of floats, one per channel. -
getFloats
Extracts pixel data as arrays of floats, one per channel. -
getDoubles
Extracts pixel data as arrays of doubles, one per channel. -
getDoubles
Extracts pixel data as arrays of doubles, one per channel. -
getDoubles
Extracts pixel data as arrays of doubles, one per channel. -
getPixelBytes
Return a 2D array of bytes representing the image. If the transfer type is something other than DataBuffer.TYPE_BYTE, then each pixel value is converted to the appropriate number of bytes. In other words, if we are given an image with 16-bit data, each channel of the resulting array will have width * height * 2 bytes. -
getPixelBytes
Return a 2D array of bytes representing the image. If the transfer type is something other than DataBuffer.TYPE_BYTE, then each pixel value is converted to the appropriate number of bytes. In other words, if we are given an image with 16-bit data, each channel of the resulting array will have width * height * 2 bytes. -
getPixelBytes
Return a 2D array of bytes representing the image. If the transfer type is something other than DataBuffer.TYPE_BYTE, then each pixel value is converted to the appropriate number of bytes. In other words, if we are given an image with 16-bit data, each channel of the resulting array will have width * height * 2 bytes. -
getPixelBytes
Return a 2D array of bytes representing the image. If the transfer type is something other than DataBuffer.TYPE_BYTE, then each pixel value is converted to the appropriate number of bytes. In other words, if we are given an image with 16-bit data, each channel of the resulting array will have width * height * 2 bytes. -
getBytes
Get the bytes from an image, merging the channels as necessary. -
makeColorSpace
Gets a color space for the given number of color components. -
makeColorModel
Gets a color model for the given number of color components.
-