Basic Renderable Example:

Demo
The simple renderable demo on the following page consists of a large source image, small image panning window, button to perform the scale and invert operation, and the resultant destination image. Pressing the "Invert/Scale" button will shrink the source image and invert its color components.

JAI
This demo utilizes the

JAI.createRenderable()
JAI.createScaledRendering()
methods to perform the scale and invert imaging operations.

The "Invert" operation inverts the pixel values of an image. For source images with signed data types, the pixel values of the destination image are defined by the pseudocode:

dst[x][y][b] = -src[x][y][b]

For unsigned data types, the destination values are defined by:

dst[x][y][b] = MAX_VALUE - src[x][y][b]
where MAX_VALUE is the maximum value supported by the system of the data type of the source pixel.

Theory
The renderable API architecture integrates a model of rendering independence with a parallel, device-dependent (rendered) model. The rendering-independent portion of the architecture is a superset of the traditional model of device-dependent imaging.

The renderable layer provides image sources that can be reused multiple times in different contexts, such as screen display or printing. The renderable operators take rendering-independent parameters and can be chained together (operation chains) to form directed-acyclic-graphs(DAGS). Any class implementing the RenderableImage interface is a renderable source and must adapt to RenderContexts. Renderable images are referenced through user-defined coordinate systems.


Image Copyright © 1999, Pictures Now at http://www.picturesnow.com