| Constructor: |
public MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan) {
initialize(w, h, ColorModel.getRGBdefault(),
(Object) pix, off, scan, null);
}
Constructs an ImageProducer object which uses an array of integers
in the default RGB ColorModel to produce data for an Image object. Parameters:
w - the width of the rectangle of pixels
h - the height of the rectangle of pixels
pix - an array of pixels
off - the offset into the array of where to store the
first pixel
scan - the distance from one row of pixels to the next in
the array
Also see:
- java.awt.Component#createImage
- ColorModel#getRGBdefault
|
public MemoryImageSource(int w,
int h,
ColorModel cm,
byte[] pix,
int off,
int scan) {
initialize(w, h, cm, (Object) pix, off, scan, null);
}
Constructs an ImageProducer object which uses an array of bytes
to produce data for an Image object. Parameters:
w - the width of the rectangle of pixels
h - the height of the rectangle of pixels
cm - the specified ColorModel
pix - an array of pixels
off - the offset into the array of where to store the
first pixel
scan - the distance from one row of pixels to the next in
the array
Also see:
- java.awt.Component#createImage
|
public MemoryImageSource(int w,
int h,
ColorModel cm,
int[] pix,
int off,
int scan) {
initialize(w, h, cm, (Object) pix, off, scan, null);
}
Constructs an ImageProducer object which uses an array of integers
to produce data for an Image object. Parameters:
w - the width of the rectangle of pixels
h - the height of the rectangle of pixels
cm - the specified ColorModel
pix - an array of pixels
off - the offset into the array of where to store the
first pixel
scan - the distance from one row of pixels to the next in
the array
Also see:
- java.awt.Component#createImage
|
public MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan,
Hashtable props) {
initialize(w, h, ColorModel.getRGBdefault(),
(Object) pix, off, scan, props);
}
Constructs an ImageProducer object which uses an array of integers
in the default RGB ColorModel to produce data for an Image object. Parameters:
w - the width of the rectangle of pixels
h - the height of the rectangle of pixels
pix - an array of pixels
off - the offset into the array of where to store the
first pixel
scan - the distance from one row of pixels to the next in
the array
props - a list of properties that the ImageProducer
uses to process an image
Also see:
- java.awt.Component#createImage
- ColorModel#getRGBdefault
|
public MemoryImageSource(int w,
int h,
ColorModel cm,
byte[] pix,
int off,
int scan,
Hashtable props) {
initialize(w, h, cm, (Object) pix, off, scan, props);
}
Constructs an ImageProducer object which uses an array of bytes
to produce data for an Image object. Parameters:
w - the width of the rectangle of pixels
h - the height of the rectangle of pixels
cm - the specified ColorModel
pix - an array of pixels
off - the offset into the array of where to store the
first pixel
scan - the distance from one row of pixels to the next in
the array
props - a list of properties that the ImageProducer
uses to process an image
Also see:
- java.awt.Component#createImage
|
public MemoryImageSource(int w,
int h,
ColorModel cm,
int[] pix,
int off,
int scan,
Hashtable props) {
initialize(w, h, cm, (Object) pix, off, scan, props);
}
Constructs an ImageProducer object which uses an array of integers
to produce data for an Image object. Parameters:
w - the width of the rectangle of pixels
h - the height of the rectangle of pixels
cm - the specified ColorModel
pix - an array of pixels
off - the offset into the array of where to store the
first pixel
scan - the distance from one row of pixels to the next in
the array
props - a list of properties that the ImageProducer
uses to process an image
Also see:
- java.awt.Component#createImage
|
| Method from java.awt.image.MemoryImageSource Detail: |
public synchronized void addConsumer(ImageConsumer ic) {
if (theConsumers.contains(ic)) {
return;
}
theConsumers.addElement(ic);
try {
initConsumer(ic);
sendPixels(ic, 0, 0, width, height);
if (isConsumer(ic)) {
ic.imageComplete(animating
? ImageConsumer.SINGLEFRAMEDONE
: ImageConsumer.STATICIMAGEDONE);
if (!animating && isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
removeConsumer(ic);
}
}
} catch (Exception e) {
if (isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
}
}
}
Adds an ImageConsumer to the list of consumers interested in
data for this image. |
public synchronized boolean isConsumer(ImageConsumer ic) {
return theConsumers.contains(ic);
}
Determines if an ImageConsumer is on the list of consumers currently
interested in data for this image. |
public void newPixels() {
newPixels(0, 0, width, height, true);
}
Sends a whole new buffer of pixels to any ImageConsumers that
are currently interested in the data for this image and notify
them that an animation frame is complete.
This method only has effect if the animation flag has been
turned on through the setAnimated() method. |
public synchronized void newPixels(int x,
int y,
int w,
int h) {
newPixels(x, y, w, h, true);
}
Sends a rectangular region of the buffer of pixels to any
ImageConsumers that are currently interested in the data for
this image and notify them that an animation frame is complete.
This method only has effect if the animation flag has been
turned on through the setAnimated() method.
If the full buffer update flag was turned on with the
setFullBufferUpdates() method then the rectangle parameters
will be ignored and the entire buffer will always be sent. |
public synchronized void newPixels(byte[] newpix,
ColorModel newmodel,
int offset,
int scansize) {
this.pixels = newpix;
this.model = newmodel;
this.pixeloffset = offset;
this.pixelscan = scansize;
newPixels();
}
Changes to a new byte array to hold the pixels for this image.
If the animation flag has been turned on through the setAnimated()
method, then the new pixels will be immediately delivered to any
ImageConsumers that are currently interested in the data for
this image. |
public synchronized void newPixels(int[] newpix,
ColorModel newmodel,
int offset,
int scansize) {
this.pixels = newpix;
this.model = newmodel;
this.pixeloffset = offset;
this.pixelscan = scansize;
newPixels();
}
Changes to a new int array to hold the pixels for this image.
If the animation flag has been turned on through the setAnimated()
method, then the new pixels will be immediately delivered to any
ImageConsumers that are currently interested in the data for
this image. |
public synchronized void newPixels(int x,
int y,
int w,
int h,
boolean framenotify) {
if (animating) {
if (fullbuffers) {
x = y = 0;
w = width;
h = height;
} else {
if (x < 0) {
w += x;
x = 0;
}
if (x + w > width) {
w = width - x;
}
if (y < 0) {
h += y;
y = 0;
}
if (y + h > height) {
h = height - y;
}
}
if ((w < = 0 || h < = 0) && !framenotify) {
return;
}
Enumeration enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = (ImageConsumer) enum_.nextElement();
if (w > 0 && h > 0) {
sendPixels(ic, x, y, w, h);
}
if (framenotify && isConsumer(ic)) {
ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE);
}
}
}
}
Sends a rectangular region of the buffer of pixels to any
ImageConsumers that are currently interested in the data for
this image.
If the framenotify parameter is true then the consumers are
also notified that an animation frame is complete.
This method only has effect if the animation flag has been
turned on through the setAnimated() method.
If the full buffer update flag was turned on with the
setFullBufferUpdates() method then the rectangle parameters
will be ignored and the entire buffer will always be sent. |
public synchronized void removeConsumer(ImageConsumer ic) {
theConsumers.removeElement(ic);
}
Removes an ImageConsumer from the list of consumers interested in
data for this image. |
public void requestTopDownLeftRightResend(ImageConsumer ic) {
// Ignored. The data is either single frame and already in TDLR
// format or it is multi-frame and TDLR resends aren't critical.
}
Requests that a given ImageConsumer have the image data delivered
one more time in top-down, left-right order. |
public synchronized void setAnimated(boolean animated) {
this.animating = animated;
if (!animating) {
Enumeration enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = (ImageConsumer) enum_.nextElement();
ic.imageComplete(ImageConsumer.STATICIMAGEDONE);
if (isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
}
}
theConsumers.removeAllElements();
}
}
Changes this memory image into a multi-frame animation or a
single-frame static image depending on the animated parameter.
This method should be called immediately after the
MemoryImageSource is constructed and before an image is
created with it to ensure that all ImageConsumers will
receive the correct multi-frame data. If an ImageConsumer
is added to this ImageProducer before this flag is set then
that ImageConsumer will see only a snapshot of the pixel
data that was available when it connected. |
public synchronized void setFullBufferUpdates(boolean fullbuffers) {
if (this.fullbuffers == fullbuffers) {
return;
}
this.fullbuffers = fullbuffers;
if (animating) {
Enumeration enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = (ImageConsumer) enum_.nextElement();
ic.setHints(fullbuffers
? (ImageConsumer.TOPDOWNLEFTRIGHT |
ImageConsumer.COMPLETESCANLINES)
: ImageConsumer.RANDOMPIXELORDER);
}
}
}
Specifies whether this animated memory image should always be
updated by sending the complete buffer of pixels whenever
there is a change.
This flag is ignored if the animation flag is not turned on
through the setAnimated() method.
This method should be called immediately after the
MemoryImageSource is constructed and before an image is
created with it to ensure that all ImageConsumers will
receive the correct pixel delivery hints. |
public void startProduction(ImageConsumer ic) {
addConsumer(ic);
}
Adds an ImageConsumer to the list of consumers interested in
data for this image and immediately starts delivery of the
image data through the ImageConsumer interface. |