public abstract class Overlay extends Object
paint method.
The following is an implementation of a simple example overlay that draws a cross over the image:
class XPainter extends Overlay {
public void paint(Graphics2D g, BufferedImage image, AffineTransform transform) {
g.setColor(Color.RED);
double[] bounds={
0, 0,
image.getWidth(), 0,
image.getWidth(), image.getHeight(),
0, image.getHeight()};
transform.transform(bounds, 0, bounds, 0, 4);
g.drawLine((int)bounds[0], (int)bounds[1], (int)bounds[4], (int)bounds[5]);
g.drawLine((int)bounds[2], (int)bounds[3], (int)bounds[6], (int)bounds[7]);
}
}
It can be added to a viewer by calling viewer.addOverlay(new XPainter(), 10).| Constructor and Description |
|---|
Overlay() |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
paint(Graphics2D g,
BufferedImage image,
AffineTransform transform)
Called to paint the contents of this overlay.
|
void |
repaint()
Causes the overlay to be repainted.
|
public void repaint()
public abstract void paint(Graphics2D g, BufferedImage image, AffineTransform transform)
The method receives the currently displayed image. The image is never null -
if there is currently no image being displayed in the image viewer, then the
paint method is not called.
This method also receives the transformation that is applied to the image before it is displayed. This transformation is most commonly the concatenation of a uniform scale and a translation. The original image bounds (0, 0) - (image.getWidth(), image.getHeight()) are mapped using this transformation to get the final display bounds. The overlay should not rely on whether painting outside these final bounds will be visible or not.
g - the graphics context to draw ontoimage - the current imagetransform - the transformation applied to the image before displayingCopyright © 2012. All Rights Reserved.