There are a number of different ways to create an Image object from raw bytes.
The easiest is with the java.awt.image.MemoryImageSource class. This class implements the java.awt.image.ImageProducer interface as will all classes that create images.
public MemoryImageSource(int width, int height, int[] pixels, int offset, int scan)
public MemoryImageSource(int width, int height, ColorModel cm, byte[] pixels,
int offset, int scan)
public MemoryImageSource(int width, int height, ColorModel cm, byte[] pixels,
int offset, int scan, Hashtable props)
public MemoryImageSource(int width, int height, ColorModel cm, int[] pixels,
int offset, int scan)
public MemoryImageSource(int width, int height, ColorModel cm, int[] pixels,
int offset, int scan, Hashtable properties)
There are five different constructors in the MemoryImageSource class. for now let's concentrate on the first:
public MemoryImageSource(int width, int height, int[] pixels, int offset, int scan)
width is the width of the image in pixels. height is the height of the image in pixels.
pixels is an int array that contains the actual image
data. Each int in the array is a 32-bit quantity containing the RGB-transparency value for one pixel. offset is the index in the array where the image data starts. scan is the number of pixels in each line of the array. Most of the time this is the same as width.
To create an image you first fill an array with the data for the image, then
use that array to construct a new MemoryImageSource. Then you pass the MemoryImageSource to the createImage() method of the Component class to actually produce an Image object.