## javax.media.jai
Class JAI

    java.lang.Object
      |
      +--javax.media.jai.JAI

public final class JAI
extends java.lang.Object

A convenience class for instantiating operations.

This class allows programmers to use the syntax:

     import javax.media.jai.JAI;
     RenderedOp im = JAI.create("convolve", paramBlock, renderHints);

to create new images or collections by applying operators. The `create()` method returns a `RenderedOp` encapsulating the operation name, parameter block, and rendering hints. Additionally, it performs validity checking on the operation parameters. Programmers may also refer to JAI.createCollection("opname", paramBlock, renderHints); JAI.createRenderable("opname", paramBlock, renderHints); JAI.createRenderableCollection("opname", paramBlock, renderHints);

If the `OperationDescriptor` associated with the named operation returns `true` from its `isImmediate()` method, the `JAI.createNS()` method will ask the `RenderedOp` it constructs to render itself immediately. If this rendering is `null`, `createNS()` will itself return `null` rather than returning an instance of `RenderedOp` as it normally does.

It is possible to create new instances of the`JAI`class in order to control each instance's registry, tile cache, and tile scheduler individually. Most users will want to use only the static methods of this class, which perform all operations on a default instance, which in turn makes use of a default registry. To create a new image or collection on a non-default `JAI` instance, the `createNS()` and `createCollectionNS` (NS being short for "non-static") methods are used.

The `JAI` class contains convenience methods for a number of common argument list formats. These methods perform the work of constructing a `ParameterBlock` automatically. The convenience methods are available only in `static` form and make use of the default instance. When operating with a specific instance, the general, non-static functions `createNS()` and `createCollectionNS()` should be used. All of the convenience methods operate by calling `createNS()` on the default `JAI` instance, and thus inherit the semantics of that method with regard to immediate rendering.

The registry being used by a particular instance may be retrieved or set using the `getOperationRegistry()` and `setOperationRegistry()` methods, respectively. Only advanced users should attempt to set the registry. The tile cache and tile scheduler being used by a particular instance may likewise be set or retrieved using the methods `setTileCache()`, `setTileScheduler()`, `getTileCache()`, or `getTileScheduler()`.

Each instance of `JAI` contains a set of rendering hints which will be used for all image or collection creations. These hints are merged with any hints supplied to the `create` method; directly supplied hints take precedence over the common hints. When a new `JAI` instance is constructed, its hints are initialized to a copy of the hints associated with the default instance. When the default instance is constructed, hints for the default registry, tile cache, and tile scheduler are added to the set of common rendering hints. Similarly, invoking `setOperationRegistry()`, `setTileCache()`, or `setTileScheduler()` on a `JAI` instance will cause the respective entity to be added to the common rendering hints. The hints associated with any instance, including the default instance, may be manipulated using the `getRenderingHints()`, `setRenderingHints()`, and `clearRenderingHints()` methods.

See Also:
  `OperationRegistry`, `RenderingHints`, `TileScheduler`, `TileCache`

Field Summary
`static java.awt.RenderingHints.Key` `KEY_BORDER_EXTENDER` Key for `BorderExtender` object values.
`static java.awt.RenderingHints.Key` `KEY_DEFAULT_COLOR_MODEL_ENABLED` Key for enabling default `ColorModel` initialization when a valid `ColorModel` may not be derived by inheritance.
`static java.awt.RenderingHints.Key` `KEY_DEFAULT_COLOR_MODEL_METHOD` Key for specifying a method to be used as for default `ColorModel` initialization.
`static java.awt.RenderingHints.Key` `KEY_IMAGE_LAYOUT` Key for `ImageLayout` object values.
`static java.awt.RenderingHints.Key` `KEY_INTERPOLATION` Key for `Interpolation` object values.
`static java.awt.RenderingHints.Key` `KEY_NEGOTIATION_PREFERENCES` Key for the negotiation preferences to be used to negotiate capabilities to be used in the remote communication.
`static java.awt.RenderingHints.Key` `KEY_NUM_RETRIES` Key for the number of retries to be used for dealing with network errors during remote imaging.
`static java.awt.RenderingHints.Key` `KEY_OPERATION_BOUND` Key for `Integer` object values representing whether the operation is compute, network, or I/O bound.
`static java.awt.RenderingHints.Key` `KEY_OPERATION_REGISTRY` Key for `OperationRegistry` object values.
`static java.awt.RenderingHints.Key` `KEY_RETRY_INTERVAL` Key for the retry interval value to be used for dealing with network errors during remote imaging.
`static java.awt.RenderingHints.Key` `KEY_SERIALIZE_DEEP_COPY` Key for specifying whether a deep copy of the image data should be used when serializing images.
`static java.awt.RenderingHints.Key` `KEY_TILE_CACHE` Key for `TileCache` object values.
`static java.awt.RenderingHints.Key` `KEY_TILE_CACHE_METRIC` Key for Tile ordering metric The common `RenderingHints` do not contain a default hint corresponding to this key.
`static java.awt.RenderingHints.Key` `KEY_TILE_CODEC_FORMAT` Key for specifying the default format to be used for tile serialization via `TileCodec`s.
`static java.awt.RenderingHints.Key` `KEY_TILE_DECODING_PARAM` Key for specifying the default decoding parameters to be used for tile serialization via `TileCodec`s.
`static java.awt.RenderingHints.Key` `KEY_TILE_ENCODING_PARAM` Key for specifying the default encoding parameters to be used for tile serialization via `TileCodec`s.
`static java.awt.RenderingHints.Key` `KEY_TILE_SCHEDULER` Key for `TileScheduler` object values.

Constructor Summary
`JAI()` Returns a new instance of the`JAI`class.

Method Summary
`void` `clearRenderingHints()` Clears the `RenderingHints` associated with this `JAI` instance.
`static RenderedOp` `create(java.lang.String opName, java.util.Collection srcCol)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, int param1, int param2, java.lang.Object param3)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.lang.Object param)` Creates a `RenderedOp` that takes 1 `Object` parameter.
`static RenderedOp` `create(java.lang.String opName, java.lang.Object param1, int param2)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.lang.Object param1, int param2, java.lang.Object param3, int param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.lang.Object param1, java.lang.Object param2)` Creates a `RenderedOp` that takes 2 `Object` parameters.
`static RenderedOp` `create(java.lang.String opName, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3, java.lang.Object param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.renderable.ParameterBlock args)` Creates a `RenderedOp` with `null` rendering hints.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.renderable.ParameterBlock args, java.awt.RenderingHints hints)` Creates a `RenderedOp` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src)` Creates a `RenderedOp` that takes 1 `RenderedImage` source.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, float param1, float param2, float param3, float param4, java.lang.Object param5)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, float param1, float param2, float param3, java.lang.Object param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, float param1, float param2, java.lang.Object param3)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, float param1, int param2, float param3, float param4, java.lang.Object param5)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, int param)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, int param1, int param2, int param3, int param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, int param1, int param2, int param3, int param4, int param5, java.lang.Object param6)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param)` Creates a `RenderedOp` that takes 1 `RenderedImage` source and 1 `Object` parameter.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, float param2)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, int param2, int param3)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, java.lang.Object param2)` Creates a `RenderedOp` that takes 1 `RenderedImage` source and 2 `Object` parameters.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, java.lang.Object param2, int param3, int param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3)` Creates a `RenderedOp` that takes 1 `RenderedImage` source and 3 `Object` parameters.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3, java.lang.Object param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3, java.lang.Object param4, java.lang.Object param5)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3, java.lang.Object param4, java.lang.Object param5, java.lang.Object param6)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src1, java.awt.image.RenderedImage src2)` Creates a `RenderedOp` that takes 2 `RenderedImage` sources.
`static RenderedOp` `create(java.lang.String opName, java.awt.image.RenderedImage src1, java.awt.image.RenderedImage src2, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3, java.lang.Object param4)` Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.
`static java.util.Collection` `createCollection(java.lang.String opName, java.awt.image.renderable.ParameterBlock args)` Creates a `Collection` with `null` rendering hints.
`static java.util.Collection` `createCollection(java.lang.String opName, java.awt.image.renderable.ParameterBlock args, java.awt.RenderingHints hints)` Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination.
`java.util.Collection` `createCollectionNS(java.lang.String opName, java.awt.image.renderable.ParameterBlock args, java.awt.RenderingHints hints)` Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination.
`RenderedOp` `createNS(java.lang.String opName, java.awt.image.renderable.ParameterBlock args, java.awt.RenderingHints hints)` Creates a `RenderedOp` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination.
`static RenderableOp` `createRenderable(java.lang.String opName, java.awt.image.renderable.ParameterBlock args)` Creates a `RenderableOp` that represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`.
`static java.util.Collection` `createRenderableCollection(java.lang.String opName, java.awt.image.renderable.ParameterBlock args)` Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`.
`java.util.Collection` `createRenderableCollectionNS(java.lang.String opName, java.awt.image.renderable.ParameterBlock args)` Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`.
`RenderableOp` `createRenderableNS(java.lang.String opName, java.awt.image.renderable.ParameterBlock args)` Creates a `RenderableOp` that represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`.
`static TileCache` `createTileCache()` Constructs a `TileCache` with the default memory capacity in bytes.
`static TileCache` `createTileCache(int tileCapacity, long memCapacity)` Deprecated. as of 1.1 Refer to createTileCache(long memCapacity).
`static TileCache` `createTileCache(long memCapacity)` Constructs a `TileCache` with the given memory capacity in bytes.
`static TileScheduler` `createTileScheduler()` Constructs a `TileScheduler` with the default parallelism and priorities.
`static void` `disableDefaultTileCache()` Disable use of default tile cache.
`static void` `enableDefaultTileCache()` Enable use of default tile cache.
`static java.lang.String` `getBuildVersion()` Returns JAI version information as a `String`
`static JAI` `getDefaultInstance()` Returns the default`JAI`instance.
`static java.awt.Dimension` `getDefaultTileSize()` Retrieves the clone of the default tile dimensions.
`OperationRegistry` `getOperationRegistry()` Returns the`OperationRegistry` being used by this`JAI`instance.
`java.lang.Object` `getRenderingHint(java.awt.RenderingHints.Key key)` Returns the hint value associated with a given key in this `JAI` instance, or `null` if no value is associated with the given key.
`java.awt.RenderingHints` `getRenderingHints()` Returns the `RenderingHints` associated with this `JAI` instance.
`TileCache` `getTileCache()` Returns the `TileCache` being used by this`JAI`instance.
`TileScheduler` `getTileScheduler()` Returns the `TileScheduler` being used by this`JAI`instance.
`void` `removeRenderingHint(java.awt.RenderingHints.Key key)` Removes the hint value associated with a given key in this `JAI` instance.
`static void` `setDefaultTileSize(java.awt.Dimension tileDimensions)` Sets the default tile dimensions to the clone of the provided parameter.
`void` `setOperationRegistry(OperationRegistry operationRegistry)` Sets the`OperationRegistry` to be used by this`JAI`instance.
`void` `setRenderingHint(java.awt.RenderingHints.Key key, java.lang.Object value)` Sets the hint value associated with a given key in this `JAI` instance.
`void` `setRenderingHints(java.awt.RenderingHints hints)` Sets the `RenderingHints` associated with this `JAI` instance.
`void` `setTileCache(TileCache tileCache)` Sets the `TileCache` to be used by this`JAI` instance.
`void` `setTileScheduler(TileScheduler tileScheduler)` Sets the `TileScheduler` to be used by this`JAI` instance.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### KEY_IMAGE_LAYOUT

    public static java.awt.RenderingHints.Key KEY_IMAGE_LAYOUT

  Key for `ImageLayout` object values. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_INTERPOLATION

    public static java.awt.RenderingHints.Key KEY_INTERPOLATION

  Key for `Interpolation` object values. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_OPERATION_REGISTRY

    public static java.awt.RenderingHints.Key KEY_OPERATION_REGISTRY

  Key for `OperationRegistry` object values. The common `RenderingHints` by default contain a hint corresponding to this key the value of which is equal to the value returned by `getOperationRegistry()`. The hint is automatically set by `setOperationRegistry()`.

### KEY_OPERATION_BOUND

    public static java.awt.RenderingHints.Key KEY_OPERATION_BOUND

  Key for `Integer` object values representing whether the operation is compute, network, or I/O bound. The values come from the constants `OpImage.OP_COMPUTE_BOUND`, `OpImage.OP_IO_BOUND`, and `OpImage.OP_NETWORK_BOUND`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_BORDER_EXTENDER

    public static java.awt.RenderingHints.Key KEY_BORDER_EXTENDER

  Key for `BorderExtender` object values. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_TILE_CACHE

    public static java.awt.RenderingHints.Key KEY_TILE_CACHE

  Key for `TileCache` object values. The common `RenderingHints` by default contain a hint corresponding to this key the value of which is equal to the value returned by `getTileCache()`. The hint is automatically set by `setTileCache()`.

### KEY_TILE_CACHE_METRIC

    public static java.awt.RenderingHints.Key KEY_TILE_CACHE_METRIC

  Key for Tile ordering metric The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_TILE_SCHEDULER

    public static java.awt.RenderingHints.Key KEY_TILE_SCHEDULER

  Key for `TileScheduler` object values. The common `RenderingHints` by default contain a hint corresponding to this key the value of which is equal to the value returned by `getTileScheduler()`. The hint is automatically set by `setTileScheduler()`.

### KEY_DEFAULT_COLOR_MODEL_ENABLED

    public static java.awt.RenderingHints.Key KEY_DEFAULT_COLOR_MODEL_ENABLED

  Key for enabling default `ColorModel` initialization when a valid `ColorModel` may not be derived by inheritance. The corresponding object must be a `Boolean`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_DEFAULT_COLOR_MODEL_METHOD

    public static java.awt.RenderingHints.Key KEY_DEFAULT_COLOR_MODEL_METHOD

  Key for specifying a method to be used as for default `ColorModel` initialization. The corresponding object must be a `java.lang.reflect.Method` which is static and accepts a single `SampleModel` parameter and returns a `ColorModel` or `null`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_SERIALIZE_DEEP_COPY

    public static java.awt.RenderingHints.Key KEY_SERIALIZE_DEEP_COPY

  Key for specifying whether a deep copy of the image data should be used when serializing images. The corresponding object must be a `Boolean`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_TILE_CODEC_FORMAT

    public static java.awt.RenderingHints.Key KEY_TILE_CODEC_FORMAT

  Key for specifying the default format to be used for tile serialization via `TileCodec`s. The corresponding object must be a `String`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_TILE_ENCODING_PARAM

    public static java.awt.RenderingHints.Key KEY_TILE_ENCODING_PARAM

  Key for specifying the default encoding parameters to be used for tile serialization via `TileCodec`s. The corresponding object must be a `TileCodecParameterList`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_TILE_DECODING_PARAM

    public static java.awt.RenderingHints.Key KEY_TILE_DECODING_PARAM

  Key for specifying the default decoding parameters to be used for tile serialization via `TileCodec`s. The corresponding object must be a `TileCodecParameterList`. The common `RenderingHints` do not contain a default hint corresponding to this key.

### KEY_RETRY_INTERVAL

    public static java.awt.RenderingHints.Key KEY_RETRY_INTERVAL

  Key for the retry interval value to be used for dealing with network errors during remote imaging. The corresponding object must be an `Integer`. The common `RenderingHints` do not contain a default hint corresponding to this key.
  See Also:
    `RemoteJAI`

### KEY_NUM_RETRIES

    public static java.awt.RenderingHints.Key KEY_NUM_RETRIES

  Key for the number of retries to be used for dealing with network errors during remote imaging. The corresponding object must be an `Integer`. The common `RenderingHints` do not contain a default hint corresponding to this key.
  See Also:
    `RemoteJAI`

### KEY_NEGOTIATION_PREFERENCES

    public static java.awt.RenderingHints.Key KEY_NEGOTIATION_PREFERENCES

  Key for the negotiation preferences to be used to negotiate capabilities to be used in the remote communication. The corresponding object must be a `NegotiableCapabilitySet`. The common `RenderingHints` do not contain a default hint corresponding to this key.
  See Also:
    `RemoteJAI`

Constructor Detail

### JAI

    public JAI()

  Returns a new instance of the`JAI`class. The `OperationRegistry`, `TileScheduler`, and `TileCache` will initially be references to those of the default instance. The rendering hints will be set to a clone of those of the default instance.

Method Detail

### getBuildVersion

    public static final java.lang.String getBuildVersion()

  Returns JAI version information as a `String`

### disableDefaultTileCache

    public static final void disableDefaultTileCache()

  Disable use of default tile cache. Tiles are not stored.

### enableDefaultTileCache

    public static final void enableDefaultTileCache()

  Enable use of default tile cache. Tiles are stored.

### setDefaultTileSize

    public static final void setDefaultTileSize(java.awt.Dimension tileDimensions)

  Sets the default tile dimensions to the clone of the provided parameter. If `null` there are no default dimensions.
  Parameters:
    `tileDimensions` - The default tile dimensions or `null`.
  Throws:
    ``IllegalArgumentException`` - if `tileDimensions` is non-`null` and has non-positive width or height.

### getDefaultTileSize

    public static final java.awt.Dimension getDefaultTileSize()

  Retrieves the clone of the default tile dimensions. If `null` there are no default dimensions set.
  Returns:
    The default tile dimensions or `null`.

### getDefaultInstance

    public static JAI getDefaultInstance()

  Returns the default`JAI`instance. This instance is used by all of the static methods of this class. It uses the default `OperationRegistry` and, in the Sun Microsystems, Inc. implementation, the Sun implementations of `TileCache` and `TileScheduler`. The `RenderingHints` will contain hints only for these three entities.

  Unless otherwise changed through a `setOperationRegistry` the `OperationRegistry` used by the default instance is thread-safe.

### getOperationRegistry

    public OperationRegistry getOperationRegistry()

  Returns the`OperationRegistry` being used by this`JAI`instance.

  Unless otherwise changed through a `setOperationRegistry` the `OperationRegistry` returned by `getDefaultInstance().getOperationRegistry()` is thread-safe.

### setOperationRegistry

    public void setOperationRegistry(OperationRegistry operationRegistry)

  Sets the`OperationRegistry` to be used by this`JAI`instance.
  Throws:
    `java.lang.IllegalArgumentException` - if `operationRegistry` is `null`.

### getTileScheduler

    public TileScheduler getTileScheduler()

  Returns the `TileScheduler` being used by this`JAI`instance.

### setTileScheduler

    public void setTileScheduler(TileScheduler tileScheduler)

  Sets the `TileScheduler` to be used by this`JAI` instance. The `tileScheduler` parameter will be added to the `RenderingHints` of this `JAI` instance.
  Throws:
    `java.lang.IllegalArgumentException` - if `tileScheduler` is `null`.

### getTileCache

    public TileCache getTileCache()

  Returns the `TileCache` being used by this`JAI`instance.

### setTileCache

    public void setTileCache(TileCache tileCache)

  Sets the `TileCache` to be used by this`JAI` instance. The `tileCache` parameter will be added to the `RenderingHints` of this `JAI` instance.
  Throws:
    `java.lang.IllegalArgumentException` - if `tileCache` is `null`.

### createTileCache

    public static TileCache createTileCache(int tileCapacity,
                                            long memCapacity)

  Deprecated. as of 1.1 Refer to createTileCache(long memCapacity).

  The default implementation constructs a `TileCache` with the given memory capacity in bytes. Users may supply an instance of `TileCache` to an operation by supplying a `RenderingHint` with a JAI.KEY_TILE_CACHE key and the desired `TileCache` instance as its value. Note that the absence of a tile cache hint will result in the use of the `TileCache` belonging to the default`JAI`instance. To force an operation not to perform caching, a `TileCache` instance with a tile capacity of 0 may be used. An exception will be thrown if memCapacity is negative. Attempting to set either value larger than the JVM size may result in an OutOfMemory exception.

### createTileCache

    public static TileCache createTileCache(long memCapacity)

  Constructs a `TileCache` with the given memory capacity in bytes. Users may supply an instance of `TileCache` to an operation by supplying a `RenderingHint` with a JAI.KEY_TILE_CACHE key and the desired `TileCache` instance as its value. Note that the absence of a tile cache hint will result in the use of the `TileCache` belonging to the default`JAI`instance. To force an operation not to perform caching, a `TileCache` instance with a tile capacity of 0 may be used. An exception will be thrown if memCapacity is negative. Attempting to set either value larger than the JVM size may result in an OutOfMemory exception.

### createTileCache

    public static TileCache createTileCache()

  Constructs a `TileCache` with the default memory capacity in bytes. Users may supply an instance of `TileCache` to an operation by supplying a `RenderingHint` with a JAI.KEY_TILE_CACHE key and the desired `TileCache` instance as its value. Note that the absence of a tile cache hint will result in the use of the `TileCache` belonging to the default`JAI`instance. To force an operation not to perform caching, a `TileCache` instance with a tile capacity of 0 may be used.

### createTileScheduler

    public static TileScheduler createTileScheduler()

  Constructs a `TileScheduler` with the default parallelism and priorities.

  In the Sun Microsystems reference implementation of TileScheduler the default parallelism is 2, default priority is `THREAD.NORM_PRIORITY`, default prefetch parallelism is 1, and default prefetch priority is `THREAD.MIN_PRIORITY`.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.renderable.ParameterBlock args,
                                    java.awt.RenderingHints hints)

  Creates a `RenderedOp` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination. This method should only be used when the final result returned is a single `RenderedImage`.

  The default`JAI`instance is used as the source of the registry and tile scheduler; that is, this method is equivalent to `getDefaultInstance().createNS(opName, args, hints)`. The functionality of this method is the same as its corresponding non-static method `createNS()`.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
    `hints` - The hints for the operation.
  Returns:
    A `RenderedOp` that represents the named operation, or `null` if the specified operation is in the "immediate" mode and the rendering of the `PlanarImage` failed.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the default operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the default operation registry does not support rendered image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.RenderedImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### createNS

    public RenderedOp createNS(java.lang.String opName,
                               java.awt.image.renderable.ParameterBlock args,
                               java.awt.RenderingHints hints)

  Creates a `RenderedOp` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination. This method should only be used when the final result returned is a single `RenderedImage`. However, the source(s) supplied may be a collection of rendered images or a collection of collections that at the very basic level include rendered images.

  The supplied operation name is validated against the operation registry. The source(s) and/or parameter(s) in the `ParameterBlock` are validated against the named operation's descriptor, both in their numbers and types. Additional restrictions placed on the sources and parameters by an individual operation are also validated by calling its `OperationDescriptor.validateArguments()` method.

  `JAI`allows a parameter to have a `null` input value, if that particular parameter has a default value specified in its operation's descriptor. In this case, the default value will replace the `null` input.

  `JAI`also allows unspecified tailing parameters, if these parameters have default values specified in the operation's descriptor. However, if a parameter, which has a default value, is followed by one or more parameters that have no default values, this parameter must be specified in the `ParameterBlock`, even if it only has a value of code>null.

  The rendering hints associated with this instance of `JAI` are overlaid with the hints passed to this method. That is, the set of keys will be the union of the keys from the instance's hints and the hints parameter. If the same key exists in both places, the value from the hints parameter will be used.

  This version of `create` is non-static; it may be used with a specific instance of the`JAI`class. All of the static `create()` methods ultimately call this method, thus inheriting this method's error handling.

  Since this method performs parameter checking, it may not be suitable for creating `RenderedOp` nodes meant to be passed to another host using the `RemoteImage` interface. For example, it might be necessary to refer to a file that is present only on the remote host. In such cases, it is possible to instantiate a `RenderedOp` directly, avoiding all checks.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
    `hints` - The hints for the operation.
  Returns:
    A `RenderedOp` that represents the named operation, or `null` if the specified operation is in the "immediate" mode and the rendering of the `PlanarImage` failed.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the current operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the current operation registry does not support rendered image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.RenderedImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### createCollection

    public static java.util.Collection createCollection(java.lang.String opName,
                                                        java.awt.image.renderable.ParameterBlock args,
                                                        java.awt.RenderingHints hints)

  Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination. This method should only be used when the final result returned is a `Collection`. (This includes `javax.media.jai.CollectionOp`s.)

  The default`JAI`instance is used as the source of the registry and tile scheduler; that is, this method is equivalent to `getDefaultInstance().createCollectionNS(opName, args, hints)`. The functionality of this method is the same as its corresponding non-static method `createCollectionNS()`.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
    `hints` - The hints for the operation.
  Returns:
    A `Collection` that represents the named operation, or `null` if the specified operation is in the "immediate" mode and the rendering of the `PlanarImage` failed.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the default operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the default operation registry does not support rendered image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.RenderedImage` or a `javax.media.jai.CollectionImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### createCollectionNS

    public java.util.Collection createCollectionNS(java.lang.String opName,
                                                   java.awt.image.renderable.ParameterBlock args,
                                                   java.awt.RenderingHints hints)

  Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`, and applying the specified hints to the destination. This method should only be used when the final result returned is a `Collection`. (This includes `javax.media.jai.CollectionOp`s.) The source(s) supplied may be a collection of rendered images or a collection of collections that at the very basic level include rendered images. The source(s) supplied are unwrapped to create a single collection that contains RenderedOps and collections as many as the size of the smallest collection supplied in the sources. The nth collection is created using all supplied rendered images and the nth element of each of the collections supplied in the source.

  The supplied operation name is validated against the operation registry. The source(s) and/or parameter(s) in the `ParameterBlock` are val>idated against the named operation's descriptor, both in their numbers and types. Additional restrictions placed on the sources and parameters by an individual operation are also validated by calling its `OperationDescriptor.validateArguments()` method.

  `JAI`allows a parameter to have a `null` input value, if that particular parameter has a default value specified in its operation's descriptor. In this case, the default value will replace the `null` input.

  `JAI`also allows unspecified tailing parameters, if these parameters have default values specified in the operation's descriptor. However, if a parameter, which has a default value, is followed by one or more parameters that have no default values, this parameter must be specified in the `ParameterBlock`, even if it only has a value of code>null.

  The rendering hints associated with this instance of `JAI` are overlaid with the hints passed to this method. That is, the set of keys will be the union of the keys from the instance's hints and the hints parameter. If the same key exists in both places, the value from the hints parameter will be used.

  This version of `createCollection` is non-static; it may be used with a specific instance of the JAI class.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
    `hints` - The hints for the operation.
  Returns:
    A `Collection` that represents the named operation, or `null` if the specified operation is in the "immediate" mode and the rendering of the `PlanarImage` failed.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the current operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the current operation registry does not support rendered image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.RenderedImage` or a `javax.media.jai.CollectionImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.renderable.ParameterBlock args)

  Creates a `RenderedOp` with `null` rendering hints.
  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.lang.Object param)

  Creates a `RenderedOp` that takes 1 `Object` parameter.
  Parameters:
    `opName` - The name of the operation.
    `param` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.lang.Object param1,
                                    java.lang.Object param2)

  Creates a `RenderedOp` that takes 2 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.lang.Object param1,
                                    int param2)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `Object` parameter and 1 `int` parameter
  Parameters:
    `opName` - The name of the operation.
    `param1` - The `Object` parameter.
    `param2` - The `int` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 3 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    int param1,
                                    int param2,
                                    java.lang.Object param3)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 2 `int` parameters and one `Object` parameter
  Parameters:
    `opName` - The name of the operation.
    `param1` - The first `int` parameter.
    `param2` - The second `int` parameter.
    `param3` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3,
                                    java.lang.Object param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 4 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.
    `param4` - The fourth `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.lang.Object param1,
                                    int param2,
                                    java.lang.Object param3,
                                    int param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 2 `Object` and 2 `int` parameters.
  Parameters:
    `opName` - The name of the operation.
    `param1` - The first `Object` parameter.
    `param2` - The first `int` parameter.
    `param3` - The second `Object` parameter.
    `param4` - The second `int` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src)

  Creates a `RenderedOp` that takes 1 `RenderedImage` source.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.util.Collection srcCol)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 Collection source.
  Parameters:
    `opName` - The name of the operation.
    `srcCol` - The Collection src parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param)

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 1 `Object` parameter.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    int param)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 1 `int` parameter.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param` - The `int` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    java.lang.Object param2)

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 2 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `object` parameter.
    `param2` - The second `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    float param2)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 1 `Object` and 1 `float` parameter.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The `Object` parameter.
    `param2` - The `float` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3)

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 3 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    int param2,
                                    int param3)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 1 `Object` and 2 `int` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The `Object` parameter.
    `param2` - The first `int` parameter.
    `param3` - The second `int` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    float param1,
                                    float param2,
                                    java.lang.Object param3)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 2 `float` and 1 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `float` parameter.
    `param2` - The second `float` parameter.
    `param3` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3,
                                    java.lang.Object param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 4 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.
    `param4` - The fourth `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    int param3,
                                    int param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 2 `Object` parameters and 2 `int` parameters
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The first `int` parameter.
    `param4` - The second `int` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    int param1,
                                    int param2,
                                    int param3,
                                    int param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 4 `int` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `int` parameter.
    `param2` - The second `int` parameter.
    `param3` - The third `int` parameter.
    `param4` - The fourth `int` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    float param1,
                                    float param2,
                                    float param3,
                                    java.lang.Object param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 3 `float` and 1 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `float` parameter.
    `param2` - The second `float` parameter.
    `param3` - The third `float` parameter.
    `param4` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3,
                                    java.lang.Object param4,
                                    java.lang.Object param5)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 5 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.
    `param4` - The fourth `Object` parameter.
    `param5` - The fifth `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    float param1,
                                    float param2,
                                    float param3,
                                    float param4,
                                    java.lang.Object param5)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 4 `float` parameters and one `Object` parameter.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `float` parameter.
    `param2` - The second `float` parameter.
    `param3` - The third `float` parameter.
    `param4` - The fourth `float` parameter.
    `param5` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    float param1,
                                    int param2,
                                    float param3,
                                    float param4,
                                    java.lang.Object param5)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 3 `float` parameters, 1 `int` parameter and 1 `Object` parameter.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `float` parameter.
    `param2` - The `int` parameter.
    `param3` - The second `float` parameter.
    `param4` - The third `float` parameter.
    `param5` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3,
                                    java.lang.Object param4,
                                    java.lang.Object param5,
                                    java.lang.Object param6)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source and 6 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.
    `param4` - The fourth `Object` parameter.
    `param5` - The fifth `Object` parameter.
    `param6` - The sixth `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src,
                                    int param1,
                                    int param2,
                                    int param3,
                                    int param4,
                                    int param5,
                                    java.lang.Object param6)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 1 `RenderedImage` source, 5 `int` parameters and 1 `Object` parameter.
  Parameters:
    `opName` - The name of the operation.
    `src` - The `RenderedImage` src parameter.
    `param1` - The first `int` parameter.
    `param2` - The second `int` parameter.
    `param3` - The third `int` parameter.
    `param4` - The fourth `int` parameter.
    `param5` - The fifth `int` parameter.
    `param6` - The `Object` parameter.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src1,
                                    java.awt.image.RenderedImage src2)

  Creates a `RenderedOp` that takes 2 `RenderedImage` sources.
  Parameters:
    `opName` - The name of the operation.
    `src1` - The first `RenderedImage` src.
    `src2` - The second `RenderedImage` src.

### create

    public static RenderedOp create(java.lang.String opName,
                                    java.awt.image.RenderedImage src1,
                                    java.awt.image.RenderedImage src2,
                                    java.lang.Object param1,
                                    java.lang.Object param2,
                                    java.lang.Object param3,
                                    java.lang.Object param4)

  Deprecated. as of 1.1. Instead use `create(String,ParameterBlock)`.

  Creates a `RenderedOp` that takes 2 `RenderedImage` sources and 4 `Object` parameters.
  Parameters:
    `opName` - The name of the operation.
    `src1` - The first `RenderedImage` src.
    `src2` - The second `RenderedImage` src.
    `param1` - The first `Object` parameter.
    `param2` - The second `Object` parameter.
    `param3` - The third `Object` parameter.
    `param4` - The fourth `Object` parameter.

### createCollection

    public static java.util.Collection createCollection(java.lang.String opName,
                                                        java.awt.image.renderable.ParameterBlock args)

  Creates a `Collection` with `null` rendering hints.
  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.

### createRenderable

    public static RenderableOp createRenderable(java.lang.String opName,
                                                java.awt.image.renderable.ParameterBlock args)

  Creates a `RenderableOp` that represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`. This method should only be used when the final result returned is a single `RenderdableImage`.

  The default`JAI`instance is used as the source of the registry and tile scheduler; that is, this method is equivalent to `getDefaultInstance().createRenderableNS(opName, args)`. The functionality of this method is the same as its corresponding non-static method `createRenderableNS()`.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
  Returns:
    A `RenderableOp` that represents the named operation.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the default operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the default operation registry does not support renderable image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.renderable.RenderableImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### createRenderableNS

    public RenderableOp createRenderableNS(java.lang.String opName,
                                           java.awt.image.renderable.ParameterBlock args)

  Creates a `RenderableOp` that represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`. This method should only be used when the final result returned is a single `RenderableImage`. However, the source(s) supplied may be a collection of renderable images or a collection of collections that at the very basic level include renderable images.

  The supplied operation name is validated against the operation registry. The source(s) and/or parameter(s) in the `ParameterBlock` are validated against the named operation's descriptor, both in their numbers and types. Additional restrictions placed on the sources and parameters by an individual operation are also validated by calling its `OperationDescriptor.validateRenderableArguments()` method.

  `JAI`allows a parameter to have a `null` input value, if that particular parameter has a default value specified in its operation's descriptor. In this case, the default value will replace the `null` input.

  `JAI`also allows unspecified tailing parameters, if these parameters have default values specified in the operation's descriptor. However, if a parameter, which has a default value, is followed by one or more parameters that have no default values, this parameter must be specified in the `ParameterBlock`, even if it only has a value of code>null.

  The rendering hints associated with this instance of `JAI` are set on the constructed `RenderableOp` via its `setRenderingHints()` method.

  This version of the "createRenderable" is non-static; it may be used with a specific instance of the`JAI`class.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
  Returns:
    A `RenderableOp` that represents the named operation.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the current operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the current operation registry does not support renderable image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.renderable.RenderableImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### createRenderableCollection

    public static java.util.Collection createRenderableCollection(java.lang.String opName,
                                                                  java.awt.image.renderable.ParameterBlock args)

  Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`. This method should only be used when the final result returned is a `Collection`. (This includes `javax.media.jai.CollectionOp`s.)

  The default`JAI`instance is used as the source of the registry and tile scheduler; that is, this method is equivalent to `getDefaultInstance().createRenderableCollectionNS(opName, args)`. The functionality of this method is the same as its corresponding non-static method `createRenderableCollectionNS()`.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
  Returns:
    A `Collection` that represents the named operation.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the default operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the default operation registry does not support renderable image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.renderable.RenderableImage` or a `javax.media.jai.CollectionImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### createRenderableCollectionNS

    public java.util.Collection createRenderableCollectionNS(java.lang.String opName,
                                                             java.awt.image.renderable.ParameterBlock args)

  Creates a `Collection` which represents the named operation, using the source(s) and/or parameter(s) specified in the `ParameterBlock`. This method should only be used when the final result returned is a `Collection`. (This includes `javax.media.jai.CollectionOp`s.) The source(s) supplied may be a collection of renderable images or a collection of collections that at the very basic level include renderable images. The source(s) supplied are unwrapped to create a single collection that contains RenderableOps and collections as many as the size of the smallest collection supplied in the sources. The nth collection is created using all supplied renderable images and the nth element of each of the collections supplied in the source.

  This method should be used to create a `Collection` in the renderable image mode.

  The supplied operation name is validated against the operation registry. The source(s) and/or parameter(s) in the `ParameterBlock` are validated against the named operation's descriptor, both in their numbers and types. Additional restrictions placed on the sources and parameters by an individual operation are also validated by calling its `OperationDescriptor.validateRenderableArguments()` method.

  `JAI`allows a parameter to have a `null` input value, if that particular parameter has a default value specified in its operation's descriptor. In this case, the default value will replace the `null` input.

  `JAI`also allows unspecified tailing parameters, if these parameters have default values specified in the operation's descriptor. However, if a parameter, which has a default value, is followed by one or more parameters that have no default values, this parameter must be specified in the `ParameterBlock`, even if it only has a value of code>null.

  The rendering hints associated with this instance of `JAI` are set on the constructed operation node.

  This version of `createRenderableCollection` is non-static; it may be used with a specific instance of the JAI class.

  Parameters:
    `opName` - The name of the operation.
    `args` - The source(s) and/or parameter(s) for the operation.
  Returns:
    A `Collection` that represents the named operation.
  Throws:
    `java.lang.IllegalArgumentException` - if `opName` is `null`.
    `java.lang.IllegalArgumentException` - if `args` is `null`.
    `java.lang.IllegalArgumentException` - if no `OperationDescriptor` is registered under the specified operation name in the current operation registry.
    `java.lang.IllegalArgumentException` - if the `OperationDescriptor` registered under the specified operation name in the current operation registry does not support renderable image mode.
    `java.lang.IllegalArgumentException` - if the specified operation does not produce a `java.awt.image.renderable.RenderableImage` or a `javax.media.jai.CollectionImage`.
    `java.lang.IllegalArgumentException` - if the specified operation is unable to handle the sources and parameters specified in `args`.

### getRenderingHints

    public java.awt.RenderingHints getRenderingHints()

  Returns the `RenderingHints` associated with this `JAI` instance. These rendering hints will be merged with any hints supplied as an argument to the `createNS()` or `createCollectionNS()` methods.

### setRenderingHints

    public void setRenderingHints(java.awt.RenderingHints hints)

  Sets the `RenderingHints` associated with this `JAI` instance. These rendering hints will be merged with any hints supplied as an argument to the `createNS()` or `createCollectionNS()` methods.

  The `hints` argument must be non-null, otherwise a `IllegalArgumentException` will be thrown.

### clearRenderingHints

    public void clearRenderingHints()

  Clears the `RenderingHints` associated with this `JAI` instance.

### getRenderingHint

    public java.lang.Object getRenderingHint(java.awt.RenderingHints.Key key)

  Returns the hint value associated with a given key in this `JAI` instance, or `null` if no value is associated with the given key.
  Throws:
    `java.lang.IllegalArgumentException` - if `key` is `null`.

### setRenderingHint

    public void setRenderingHint(java.awt.RenderingHints.Key key,
                                 java.lang.Object value)

  Sets the hint value associated with a given key in this `JAI` instance.
  Throws:
    `java.lang.IllegalArgumentException` - if `key` is `null`.
    `java.lang.IllegalArgumentException` - if `value` is `null`.
    `java.lang.IllegalArgumentException` - if `value` is not of the correct type for the given hint.

### removeRenderingHint

    public void removeRenderingHint(java.awt.RenderingHints.Key key)

  Removes the hint value associated with a given key in this `JAI` instance.