当前页面: 
在线文档首页 > 
JDK 5 Documentation v1.1.8, Java 2 SDK 英文文档
Class java.awt.image.MemoryImageSource - JDK 5 Documentation v1.1.8, Java 2 SDK 英文文档
All Packages  Class Hierarchy  This Package  Previous  Next  Index
  Class java.awt.image.MemoryImageSource
java.lang.Object
   |
   +----java.awt.image.MemoryImageSource
  -  public class MemoryImageSource
  -  extends Object
  -  implements ImageProducer
This class is an implementation of the ImageProducer interface which
 uses an array to produce pixel values for an Image.  Here is an example
 which calculates a 100x100 image representing a fade from black to blue
 along the X axis and a fade from black to red along the Y axis:
 
	int w = 100;
	int h = 100;
	int pix[] = new int[w * h];
	int index = 0;
	for (int y = 0; y < h; y++) {
	    int red = (y * 255) / (h - 1);
	    for (int x = 0; x < w; x++) {
		int blue = (x * 255) / (w - 1);
		pix[index++] = (255 << 24) | (red << 16) | blue;
	    }
	}
	Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));
 
 The MemoryImageSource is also capable of managing a memory image which
 varies over time to allow animation or custom rendering.  Here is an
 example showing how to set up the animation source and signal changes
 in the data (adapted from the MemoryAnimationSourceDemo by Garth Dickie):
 
	int pixels[];
	MemoryImageSource source;
	public void init() {
	    int width = 50;
	    int height = 50;
	    int size = width * height;
	    pixels = new int[size];
	    int value = getBackground().getRGB();
	    for (int i = 0; i < size; i++) {
		pixels[i] = value;
	    }
	    source = new MemoryImageSource(width, height, pixels, 0, width);
	    source.setAnimated(true);
	    image = createImage(source);
	}
	public void run() {
	    Thread me = Thread.currentThread( );
	    me.setPriority(Thread.MIN_PRIORITY);
	    while (true) {
		try {
		    thread.sleep(10);
		} catch( InterruptedException e ) {
		    return;
		}
		// Modify the values in the pixels array at (x, y, w, h)
		// Send the new data to the interested ImageConsumers
		source.newPixels(x, y, w, h);
	    }
	}
 
    -  See Also:
    
-  ImageProducer
   
  -   MemoryImageSource(int, int, ColorModel, byte[], int, int) MemoryImageSource(int, int, ColorModel, byte[], int, int)
-   Constructs an ImageProducer object which uses an array of bytes
 to produce data for an Image object.
  
-   MemoryImageSource(int, int, ColorModel, byte[], int, int, Hashtable) MemoryImageSource(int, int, ColorModel, byte[], int, int, Hashtable)
-   Constructs an ImageProducer object which uses an array of bytes
 to produce data for an Image object.
  
-   MemoryImageSource(int, int, ColorModel, int[], int, int) MemoryImageSource(int, int, ColorModel, int[], int, int)
-   Constructs an ImageProducer object which uses an array of integers
 to produce data for an Image object.
  
-   MemoryImageSource(int, int, ColorModel, int[], int, int, Hashtable) MemoryImageSource(int, int, ColorModel, int[], int, int, Hashtable)
-   Constructs an ImageProducer object which uses an array of integers
 to produce data for an Image object.
  
-   MemoryImageSource(int, int, int[], int, int) MemoryImageSource(int, int, int[], int, int)
-   Constructs an ImageProducer object which uses an array of integers
 in the default RGB ColorModel to produce data for an Image object.
  
-   MemoryImageSource(int, int, int[], int, int, Hashtable) MemoryImageSource(int, int, int[], int, int, Hashtable)
-   Constructs an ImageProducer object which uses an array of integers
 in the default RGB ColorModel to produce data for an Image object.
   
  -   addConsumer(ImageConsumer) addConsumer(ImageConsumer)
-   Adds an ImageConsumer to the list of consumers interested in
 data for this image.
  
-   isConsumer(ImageConsumer) isConsumer(ImageConsumer)
-   Determine if an ImageConsumer is on the list of consumers currently
 interested in data for this image.
  
-   newPixels() newPixels()
-   Send 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.
  
-   newPixels(byte[], ColorModel, int, int) newPixels(byte[], ColorModel, int, int)
-   Change to a new byte array to hold the pixels for this image.
  
-   newPixels(int, int, int, int) newPixels(int, int, int, int)
-   Send 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.
  
-   newPixels(int, int, int, int, boolean) newPixels(int, int, int, int, boolean)
-   Send a rectangular region of the buffer of pixels to any
 ImageConsumers that are currently interested in the data for
 this image.
  
-   newPixels(int[], ColorModel, int, int) newPixels(int[], ColorModel, int, int)
-   Change to a new int array to hold the pixels for this image.
  
-   removeConsumer(ImageConsumer) removeConsumer(ImageConsumer)
-   Remove an ImageConsumer from the list of consumers interested in
 data for this image.
  
-   requestTopDownLeftRightResend(ImageConsumer) requestTopDownLeftRightResend(ImageConsumer)
-   Requests that a given ImageConsumer have the image data delivered
 one more time in top-down, left-right order.
  
-   setAnimated(boolean) setAnimated(boolean)
-   Change this memory image into a multi-frame animation or a
 single-frame static image depending on the animated parameter.
  
-   setFullBufferUpdates(boolean) setFullBufferUpdates(boolean)
-   Specify whether this animated memory image should always be
 updated by sending the complete buffer of pixels whenever
 there is a change.
  
-   startProduction(ImageConsumer) startProduction(ImageConsumer)
-   Adds an ImageConsumer to the list of consumers interested in
 data for this image, and immediately start delivery of the
 image data through the ImageConsumer interface.
   
 MemoryImageSource
MemoryImageSource
 public MemoryImageSource(int w,
                          int h,
                          ColorModel cm,
                          byte pix[],
                          int off,
                          int scan)
  -  Constructs an ImageProducer object which uses an array of bytes
 to produce data for an Image object.
   
- 
    -  See Also:
    
-  createImage
  
 
 MemoryImageSource
MemoryImageSource
 public MemoryImageSource(int w,
                          int h,
                          ColorModel cm,
                          byte pix[],
                          int off,
                          int scan,
                          Hashtable props)
  -  Constructs an ImageProducer object which uses an array of bytes
 to produce data for an Image object.
   
- 
    -  See Also:
    
-  createImage
  
 
 MemoryImageSource
MemoryImageSource
 public MemoryImageSource(int w,
                          int h,
                          ColorModel cm,
                          int pix[],
                          int off,
                          int scan)
  -  Constructs an ImageProducer object which uses an array of integers
 to produce data for an Image object.
   
- 
    -  See Also:
    
-  createImage
  
 
 MemoryImageSource
MemoryImageSource
 public MemoryImageSource(int w,
                          int h,
                          ColorModel cm,
                          int pix[],
                          int off,
                          int scan,
                          Hashtable props)
  -  Constructs an ImageProducer object which uses an array of integers
 to produce data for an Image object.
   
- 
    -  See Also:
    
-  createImage
  
 
 MemoryImageSource
MemoryImageSource
 public MemoryImageSource(int w,
                          int h,
                          int pix[],
                          int off,
                          int scan)
  -  Constructs an ImageProducer object which uses an array of integers
 in the default RGB ColorModel to produce data for an Image object.
   
- 
    -  See Also:
    
-  createImage, getRGBdefault
  
 
 MemoryImageSource
MemoryImageSource
 public MemoryImageSource(int w,
                          int h,
                          int pix[],
                          int off,
                          int scan,
                          Hashtable props)
  -  Constructs an ImageProducer object which uses an array of integers
 in the default RGB ColorModel to produce data for an Image object.
   
- 
    -  See Also:
    
-  createImage, getRGBdefault
  
 
   
 addConsumer
addConsumer
 public synchronized void addConsumer(ImageConsumer ic)
  -  Adds an ImageConsumer to the list of consumers interested in
 data for this image.
   
- 
    -  See Also:
    
-  ImageConsumer
  
 
 isConsumer
isConsumer
 public synchronized boolean isConsumer(ImageConsumer ic)
  -  Determine if an ImageConsumer is on the list of consumers currently
 interested in data for this image.
   
- 
    -  Returns:
    
-  true if the ImageConsumer is on the list; false otherwise
    
-  See Also:
    
-  ImageConsumer
  
 
 removeConsumer
removeConsumer
 public synchronized void removeConsumer(ImageConsumer ic)
  -  Remove an ImageConsumer from the list of consumers interested in
 data for this image.
   
- 
    -  See Also:
    
-  ImageConsumer
  
 
 startProduction
startProduction
 public void startProduction(ImageConsumer ic)
  -  Adds an ImageConsumer to the list of consumers interested in
 data for this image, and immediately start delivery of the
 image data through the ImageConsumer interface.
   
- 
    -  See Also:
    
-  ImageConsumer
  
 
 requestTopDownLeftRightResend
requestTopDownLeftRightResend
 public void requestTopDownLeftRightResend(ImageConsumer ic)
  -  Requests that a given ImageConsumer have the image data delivered
 one more time in top-down, left-right order.
   
- 
    -  See Also:
    
-  ImageConsumer
  
 
 setAnimated
setAnimated
 public synchronized void setAnimated(boolean animated)
  -  Change 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.
 
   
- 
    -  Parameters:
    
-  animated - true if the image is a multi-frame animation
  
 
 setFullBufferUpdates
setFullBufferUpdates
 public synchronized void setFullBufferUpdates(boolean fullbuffers)
  -  Specify 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.
 
   
- 
    -  Parameters:
    
-  fullbuffers - true if the complete pixel buffer should always
 be sent
    
-  See Also:
    
-  setAnimated
  
 
 newPixels
newPixels
 public void newPixels()
  -  Send 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.
   
- 
    -  See Also:
    
-  ImageConsumer, setAnimated
  
 
 newPixels
newPixels
 public synchronized void newPixels(int x,
                                    int y,
                                    int w,
                                    int h)
  -  Send 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.
   
- 
    -  Parameters:
    
-  x - the x coordinate of the upper left corner of the rectangle
 of pixels to be sent
    -  y - the y coordinate of the upper left corner of the rectangle
 of pixels to be sent
    -  w - the width of the rectangle of pixels to be sent
    -  h - the height of the rectangle of pixels to be sent
    
-  See Also:
    
-  ImageConsumer, setAnimated, setFullBufferUpdates
  
 
 newPixels
newPixels
 public synchronized void newPixels(int x,
                                    int y,
                                    int w,
                                    int h,
                                    boolean framenotify)
  -  Send 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.
   
- 
    -  Parameters:
    
-  x - the x coordinate of the upper left corner of the rectangle
 of pixels to be sent
    -  y - the y coordinate of the upper left corner of the rectangle
 of pixels to be sent
    -  w - the width of the rectangle of pixels to be sent
    -  h - the height of the rectangle of pixels to be sent
    -  framenotify - true if the consumers should be sent a
 SINGLEFRAMEDONE notification
    
-  See Also:
    
-  ImageConsumer, setAnimated, setFullBufferUpdates
  
 
 newPixels
newPixels
 public synchronized void newPixels(byte newpix[],
                                    ColorModel newmodel,
                                    int offset,
                                    int scansize)
  -  Change 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.
   
- 
    -  See Also:
    
-  setAnimated
  
 
 newPixels
newPixels
 public synchronized void newPixels(int newpix[],
                                    ColorModel newmodel,
                                    int offset,
                                    int scansize)
  -  Change 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.
   
- 
    -  See Also:
    
-  setAnimated
  
 
All Packages  Class Hierarchy  This Package  Previous  Next  Index
Submit a bug or feature - Version 1.1.8 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems,  Inc. in the US and other countries.
Copyright 1995-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A.  All Rights Reserved.