# Class TexturePaint

java.lang.Object
java.awt.TexturePaint

All Implemented Interfaces:
  `Paint, Transparency`

public class TexturePaint extends Object implements Paint
The `TexturePaint` class provides a way to fill a `Shape` with a texture that is specified as a `BufferedImage`. The size of the `BufferedImage` object should be small because the `BufferedImage` data is copied by the `TexturePaint` object. At construction time, the texture is anchored to the upper left corner of a `Rectangle2D` that is specified in user space. Texture is computed for locations in the device space by conceptually replicating the specified `Rectangle2D` infinitely in all directions in user space and mapping the `BufferedImage` to each replicated `Rectangle2D`.

See Also:
  - `Paint`
  - `Graphics2D.setPaint(Paint)`

- ## Field Summary

  ### Fields declared in interface Transparency

  `BITMASK, OPAQUE, TRANSLUCENT`
  Modifier and Type
  Field
  Description
  `static final int`
  `BITMASK`
  Represents image data that is guaranteed to be either completely opaque, with an alpha value of 1.0, or completely transparent, with an alpha value of 0.0.
  `static final int`
  `OPAQUE`
  Represents image data that is guaranteed to be completely opaque, meaning that all pixels have an alpha value of 1.0.
  `static final int`
  `TRANSLUCENT`
  Represents image data that contains or might contain arbitrary alpha values between and including 0.0 and 1.0.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TexturePaint(BufferedImage txtr, Rectangle2D anchor)`
  Constructs a `TexturePaint` object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PaintContext`
  `createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform xform, RenderingHints hints)`
  Creates and returns a `PaintContext` used to generate a tiled image pattern.
  `Rectangle2D`
  `getAnchorRect()`
  Returns a copy of the anchor rectangle which positions and sizes the textured image.
  `BufferedImage`
  `getImage()`
  Returns the `BufferedImage` texture used to fill the shapes.
  `int`
  `getTransparency()`
  Returns the transparency mode for this `TexturePaint`.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### TexturePaint

    public TexturePaint(BufferedImage txtr, Rectangle2D anchor)
    Constructs a `TexturePaint` object.
    Parameters:
      `txtr` - the `BufferedImage` object with the texture used for painting
      `anchor` - the `Rectangle2D` in user space used to anchor and replicate the texture

- ## Method Details

  - ### getImage

    public BufferedImage getImage()
    Returns the `BufferedImage` texture used to fill the shapes.
    Returns:
      a `BufferedImage`.

  - ### getAnchorRect

    public Rectangle2D getAnchorRect()
    Returns a copy of the anchor rectangle which positions and sizes the textured image.
    Returns:
      the `Rectangle2D` used to anchor and size this `TexturePaint`.

  - ### createContext

    public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform xform, RenderingHints hints)
    Creates and returns a `PaintContext` used to generate a tiled image pattern. See the `specification` of the method in the `Paint` interface for information on null parameter handling.
    Specified by:
      `createContext` in interface `Paint`
    Parameters:
      `cm` - the preferred `ColorModel` which represents the most convenient format for the caller to receive the pixel data, or `null` if there is no preference.
      `deviceBounds` - the device space bounding box of the graphics primitive being rendered.
      `userBounds` - the user space bounding box of the graphics primitive being rendered.
      `xform` - the `AffineTransform` from user space into device space.
      `hints` - the set of hints that the context object can use to choose between rendering alternatives.
    Returns:
      the `PaintContext` for generating color patterns.
    See Also:
      - `Paint`
      - `PaintContext`
      - `ColorModel`
      - `Rectangle`
      - `Rectangle2D`
      - `AffineTransform`
      - `RenderingHints`

  - ### getTransparency

    public int getTransparency()
    Returns the transparency mode for this `TexturePaint`.
    Specified by:
      `getTransparency` in interface `Transparency`
    Returns:
      the transparency mode for this `TexturePaint` as an integer value.
    See Also:
      - `Transparency`