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
methods to perform the scale and invert imaging operations.JAI.createRenderable()
JAI.createScaledRendering()
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.