Fields Summary |
---|
private static ImageCapabilities | defaultImageCapsconvenience object; we can use this single static object for
all images that do not create their own image caps; it holds the
default (unaccelerated) properties. |
protected float | accelerationPriorityPriority for accelerating this image. Subclasses are free to
set different default priorities and applications are free to
set the priority for specific images via the
setAccelerationPriority(float) method. |
public static final Object | UndefinedPropertyThe UndefinedProperty object should be returned whenever a
property which was not defined for a particular image is fetched. |
public static final int | SCALE_DEFAULTUse the default image-scaling algorithm. |
public static final int | SCALE_FASTChoose an image-scaling algorithm that gives higher priority
to scaling speed than smoothness of the scaled image. |
public static final int | SCALE_SMOOTHChoose an image-scaling algorithm that gives higher priority
to image smoothness than scaling speed. |
public static final int | SCALE_REPLICATEUse the image scaling algorithm embodied in the
ReplicateScaleFilter class.
The Image object is free to substitute a different filter
that performs the same algorithm yet integrates more efficiently
into the imaging infrastructure supplied by the toolkit. |
public static final int | SCALE_AREA_AVERAGINGUse the Area Averaging image scaling algorithm. The
image object is free to substitute a different filter that
performs the same algorithm yet integrates more efficiently
into the image infrastructure supplied by the toolkit. |
SurfaceManager | surfaceManager |
Methods Summary |
---|
public void | flush()Flushes all reconstructable resources being used by this Image object.
This includes any pixel data that is being cached for rendering to
the screen as well as any system resources that are being used
to store data or pixels for the image if they can be recreated.
The image is reset to a state similar to when it was first created
so that if it is again rendered, the image data will have to be
recreated or fetched again from its source.
Examples of how this method affects specific types of Image object:
-
BufferedImage objects leave the primary Raster which stores their
pixels untouched, but flush any information cached about those
pixels such as copies uploaded to the display hardware for
accelerated blits.
-
Image objects created by the Component methods which take a
width and height leave their primary buffer of pixels untouched,
but have all cached information released much like is done for
BufferedImage objects.
-
VolatileImage objects release all of their pixel resources
including their primary copy which is typically stored on
the display hardware where resources are scarce.
These objects can later be restored using their
{@link java.awt.image.VolatileImage#validate validate}
method.
-
Image objects created by the Toolkit and Component classes which are
loaded from files, URLs or produced by an {@link ImageProducer}
are unloaded and all local resources are released.
These objects can later be reloaded from their original source
as needed when they are rendered, just as when they were first
created.
if (surfaceManager != null) {
surfaceManager.flush();
}
|
public float | getAccelerationPriority()Returns the current value of the acceleration priority hint.
return accelerationPriority;
|
public java.awt.ImageCapabilities | getCapabilities(java.awt.GraphicsConfiguration gc)Returns an ImageCapabilities object which can be
inquired as to the capabilities of this
Image on the specified GraphicsConfiguration.
This allows programmers to find
out more runtime information on the specific Image
object that they have created. For example, the user
might create a BufferedImage but the system may have
no video memory left for creating an image of that
size on the given GraphicsConfiguration, so although the object
may be acceleratable in general, it is
does not have that capability on this GraphicsConfiguration.
if (surfaceManager != null) {
return surfaceManager.getCapabilities(gc);
}
// Note: this is just a default object that gets returned in the
// absence of any more specific information from a surfaceManager.
// Subclasses of Image should either override this method or
// make sure that they always have a non-null SurfaceManager
// to return an ImageCapabilities object that is appropriate
// for their given subclass type.
return defaultImageCaps;
|
public abstract java.awt.Graphics | getGraphics()Creates a graphics context for drawing to an off-screen image.
This method can only be called for off-screen images.
|
public abstract int | getHeight(java.awt.image.ImageObserver observer)Determines the height of the image. If the height is not yet known,
this method returns -1 and the specified
ImageObserver object is notified later.
|
public abstract java.lang.Object | getProperty(java.lang.String name, java.awt.image.ImageObserver observer)Gets a property of this image by name.
Individual property names are defined by the various image
formats. If a property is not defined for a particular image, this
method returns the UndefinedProperty object.
If the properties for this image are not yet known, this method
returns null , and the ImageObserver
object is notified later.
The property name "comment" should be used to store
an optional comment which can be presented to the application as a
description of the image, its source, or its author.
|
public java.awt.Image | getScaledInstance(int width, int height, int hints)Creates a scaled version of this image.
A new Image object is returned which will render
the image at the specified width and
height by default. The new Image object
may be loaded asynchronously even if the original source image
has already been loaded completely.
If either width
or height is a negative number then a value is
substituted to maintain the aspect ratio of the original image
dimensions. If both width and height
are negative, then the original image dimensions are used.
ImageFilter filter;
if ((hints & (SCALE_SMOOTH | SCALE_AREA_AVERAGING)) != 0) {
filter = new AreaAveragingScaleFilter(width, height);
} else {
filter = new ReplicateScaleFilter(width, height);
}
ImageProducer prod;
prod = new FilteredImageSource(getSource(), filter);
return Toolkit.getDefaultToolkit().createImage(prod);
|
public abstract java.awt.image.ImageProducer | getSource()Gets the object that produces the pixels for the image.
This method is called by the image filtering classes and by
methods that perform image conversion and scaling.
|
public abstract int | getWidth(java.awt.image.ImageObserver observer)Determines the width of the image. If the width is not yet known,
this method returns -1 and the specified
ImageObserver object is notified later.
|
public void | setAccelerationPriority(float priority)Sets a hint for this image about how important acceleration is.
This priority hint is used to compare to the priorities of other
Image objects when determining how to use scarce acceleration
resources such as video memory. When and if it is possible to
accelerate this Image, if there are not enough resources available
to provide that acceleration but enough can be freed up by
de-accelerating some other image of lower priority, then that other
Image may be de-accelerated in deference to this one. Images
that have the same priority take up resources on a first-come,
first-served basis.
if (priority < 0 || priority > 1) {
throw new IllegalArgumentException("Priority must be a value " +
"between 0 and 1, inclusive");
}
accelerationPriority = priority;
if (surfaceManager != null) {
surfaceManager.setAccelerationPriority(accelerationPriority);
}
|