Package org.pushingpixels.substance.api.watermark

# Class SubstanceImageWatermark

java.lang.Object
org.pushingpixels.substance.api.watermark.SubstanceImageWatermark

All Implemented Interfaces:
  `SubstanceTrait`, `SubstanceWatermark`

public class SubstanceImageWatermark extends Object implements SubstanceWatermark
Implementation of `SubstanceWatermark`, drawing specified image as watermark. This class is part of officially supported API.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected BufferedImage`
`origImage`
The original image (as read from the disk / HTTP connection).
`protected String`
`origImageLocation`
The original image location.
`protected Image`
`watermarkImage`
Watermark image (screen-sized).

## Constructor Summary

Constructors
Constructor
Description
`SubstanceImageWatermark(InputStream inputStream)`
Creates an instance from the specified input stream.
`SubstanceImageWatermark(String imageLocation)`
Creates an instance with specified image.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Disposes the memory associated with `this` watermark.
`void`
`drawWatermarkImage(Graphics graphics, Component c, int x, int y, int width, int height)`
Draws the watermark on the specified graphics context in the specified region.
`String`
`getDisplayName()`
Returns the display name of `this` trait.
`SubstanceConstants.ImageWatermarkKind`
`getKind()`
Returns the image watermark kind.
`float`
`getOpacity()`
Returns the image watermark opacity.
`String`
`getOrigImageLocation()`
Returns the location of the original image.
`void`
`previewWatermark(Graphics g, SubstanceSkin skin, int x, int y, int width, int height)`
Draws the preview of the watermark image.
`void`
`setKind(SubstanceConstants.ImageWatermarkKind kind)`
Sets image watermark kind.
`void`
`setOpacity(float opacity)`
Sets image watermark opacity.
`boolean`
`updateWatermarkImage(SubstanceSkin skin)`
Updates the current watermark image.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### watermarkImage

protected Image watermarkImage
Watermark image (screen-sized).

### origImage

protected BufferedImage origImage
The original image (as read from the disk / HTTP connection).

### origImageLocation

protected String origImageLocation
The original image location.

## Constructor Details

### SubstanceImageWatermark

public SubstanceImageWatermark(String imageLocation)
Creates an instance with specified image.

Parameters:
  `imageLocation` - Image location. Can point to a local file or HTTP URL (needs to start with `http` in the later case).

### SubstanceImageWatermark

public SubstanceImageWatermark(InputStream inputStream)
Creates an instance from the specified input stream.

Parameters:
  `inputStream` - Input stream.

## Method Details

### drawWatermarkImage

public void drawWatermarkImage(Graphics graphics, Component c, int x, int y, int width, int height)
Description copied from interface: `SubstanceWatermark`
Draws the watermark on the specified graphics context in the specified region.

Specified by:
  `drawWatermarkImage` in interface `SubstanceWatermark`
Parameters:
  `graphics` - Graphics context.
  `c` - Component that is painted.
  `x` - Left X of the region.
  `y` - Top Y of the region.
  `width` - Region width.
  `height` - Region height.

### previewWatermark

public void previewWatermark(Graphics g, SubstanceSkin skin, int x, int y, int width, int height)
Description copied from interface: `SubstanceWatermark`
Draws the preview of the watermark image.

Specified by:
  `previewWatermark` in interface `SubstanceWatermark`
Parameters:
  `g` - Graphic context.
  `skin` - Optional skin to use for the preview. Can be ignored by the implementation.
  `x` - the x coordinate of the watermark to be drawn.
  `y` - The y coordinate of the watermark to be drawn.
  `width` - The width of the watermark to be drawn.
  `height` - The height of the watermark to be drawn.

### updateWatermarkImage

public boolean updateWatermarkImage(SubstanceSkin skin)
Description copied from interface: `SubstanceWatermark`
Updates the current watermark image.

Specified by:
  `updateWatermarkImage` in interface `SubstanceWatermark`
Parameters:
  `skin` - Skin for the watermark.
Returns:
  `true` if the watermark has been updated successfully, `false` otherwise.

### getDisplayName

public String getDisplayName()
Description copied from interface: `SubstanceTrait`
Returns the display name of `this` trait. This method is part of officially supported API.

Specified by:
  `getDisplayName` in interface `SubstanceTrait`
Returns:
  The display name of `this` trait.

### dispose

public void dispose()
Description copied from interface: `SubstanceWatermark`
Disposes the memory associated with `this` watermark.

Specified by:
  `dispose` in interface `SubstanceWatermark`

### getOrigImageLocation

public String getOrigImageLocation()
Returns the location of the original image.

Returns:
  The location of the original image.

### setKind

public void setKind(SubstanceConstants.ImageWatermarkKind kind)
Sets image watermark kind.

Parameters:
  `kind` - Image watermark kind.

### getKind

public SubstanceConstants.ImageWatermarkKind getKind()
Returns the image watermark kind.

Returns:
  Image watermark kind.

### getOpacity

public float getOpacity()
Returns the image watermark opacity.

Returns:
  Image watermark opacity.

### setOpacity

public void setOpacity(float opacity)
Sets image watermark opacity.

Parameters:
  `opacity` - Image watermark opacity.
Throws:
  `IllegalArgumentException` - if the argument is not in 0.0-1.0 range.