Package org.pushingpixels.substance.internal.utils

# Class SubstanceImageCreator

java.lang.Object
org.pushingpixels.substance.internal.utils.SubstanceImageCreator

public final class SubstanceImageCreator extends Object
Provides utility functions for creating various images for Substance look and feel. This class is for internal use only.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`SubstanceImageCreator.SimplisticSoftBorderReverseFillPainter`
Custom fill painter for filling the checkmarks of checkboxes and radio buttons.

## Constructor Summary

Constructors
Constructor
Description
`SubstanceImageCreator()`

## Method Summary

Modifier and Type
Method
Description
`static BufferedImage`
`getArrow(float width, float height, float strokeWidth, int direction, SubstanceColorScheme scheme)`
Retrieves arrow image.
`static Icon`
`getArrowIcon(float width, float height, float strokeWidth, int direction, SubstanceColorScheme scheme)`
Retrieves arrow icon.
`static Icon`
`getArrowIcon(int fontSize, int direction, SubstanceColorScheme colorScheme)`
Returns arrow icon for the specified parameters.
`static BufferedImage`
`getCheckBox(AbstractButton button, SubstanceFillPainter fillPainter, SubstanceBorderPainter borderPainter, int dimension, ComponentState componentState, SubstanceColorScheme fillColorScheme, SubstanceColorScheme markColorScheme, SubstanceColorScheme borderColorScheme, float checkMarkVisibility, boolean isCheckMarkFadingOut)`
Retrieves check box of the specified size that matches the specified component state.
`static Icon`
`getCloseIcon(int iSize, SubstanceColorScheme colorScheme, SubstanceColorScheme backgroundScheme)`
Returns `close` icon.
`static Icon`
`getCloseIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)`
Returns `close` icon.
`static BufferedImage`
`getColorSchemeImage(Component comp, Icon original, SubstanceColorScheme colorScheme, float originalBrightnessFactor)`
Creates a new version of the specified icon that is rendered in the colors of the specified color scheme.
`static BufferedImage`
`getColorSchemeImage(BufferedImage original, SubstanceColorScheme colorScheme, float originalBrightnessFactor)`
Creates a new version of the specified image that is rendered in the colors of the specified color scheme.
`static Image`
`getCrayonsImage()`
Retrieves crayons image for the crayon panel of color chooser.
`static Icon`
`getDoubleArrowIcon(int fontSize, float width, float height, float strokeWidth, int direction, SubstanceColorScheme colorScheme)`
Retrieves arrow icon.
`static Icon`
`getDoubleArrowIconDelta(int fontSize, float deltaWidth, float deltaHeight, float deltaStrokeWidth, int direction, SubstanceColorScheme colorScheme)`
Returns double arrow icon for the specified parameters.
`static BufferedImage`
`getDragImage(Component c, SubstanceColorScheme colorScheme, int width, int height, int maxNumberOfStripes)`
Returns drag bumps image.
`static Icon`
`getHexaMarker(int value, SubstanceColorScheme colorScheme)`
Returns small icon representation of the specified integer value.
`static Icon`
`getMaximizeIcon(int iSize, SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)`
Returns `maximize` icon.
`static Icon`
`getMaximizeIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)`
Returns `maximize` icon.
`static Icon`
`getMinimizeIcon(int iSize, SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)`
Returns `minimize` icon.
`static Icon`
`getMinimizeIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)`
Returns `minimize` icon.
`static BufferedImage`
`getNegated(BufferedImage bi)`
Returns the negative of the specified image.
`static BufferedImage`
`getRadioButton(JComponent component, SubstanceFillPainter fillPainter, SubstanceBorderPainter borderPainter, int dimension, ComponentState componentState, int offsetX, SubstanceColorScheme fillColorScheme, SubstanceColorScheme markColorScheme, SubstanceColorScheme borderColorScheme, float checkMarkVisibility)`
Retrieves radio button of the specified size that matches the specified parameters.
`static BufferedImage`
`getResizeGripImage(Component c, SubstanceColorScheme colorScheme, int dimension, boolean isCrowded)`
Returns resize grip image.
`static Icon`
`getRestoreIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)`
Returns `restore` icon.
`static BufferedImage`
`getRotated(BufferedImage bi, int quadrantClockwise)`
Returns rotated image.
`static VolatileImage`
`getRotated(VolatileImage bi, int quadrantClockwise)`
Returns rotated image.
`static Icon`
`getSearchIcon(int dimension, SubstanceColorScheme colorScheme, boolean leftToRight)`
Returns search icon.
`static BufferedImage`
`getSingleCrayon(Color mainColor, int width, int height)`
Retrieves a single crayon of the specified color and dimensions for the crayon panel in color chooser.
`static Icon`
`getSmallLockIcon(SubstanceColorScheme scheme, Component c)`
Returns a lock icon that matches the specified scheme.
`static BufferedImage`
`getStripe(int baseSize, Color color)`
Returns diagonal stripe image.
`static BufferedImage`
`getTreeIcon(JTree tree, SubstanceColorScheme fillScheme, SubstanceColorScheme borderScheme, boolean isCollapsed)`
Retrieves tree icon.
`static Icon`
`getWatermarkIcon(SubstanceWatermark watermark)`
Returns an icon that matches the specified watermark.
`static Icon`
`makeTransparent(Component c, Icon icon, double alpha)`
Makes the specified icon transparent.
`static void`
`paintBorder(Component c, Graphics2D graphics, int x, int y, int width, int height, float radius, SubstanceColorScheme borderScheme)`
Paints border instance of specified dimensions and status.
`static void`
`paintCompositeRoundedBackground(JComponent component, Graphics g, int width, int height, int cornerRadius, AbstractButton decrButton, AbstractButton incrButton, boolean flipSides)`
Retrieves composite background for the specified parameters.
`static void`
`paintRectangularBackground(Component c, Graphics g, int startX, int startY, int width, int height, SubstanceColorScheme colorScheme, float borderAlpha, boolean isVertical)`
Paints rectangular gradient background.
`static void`
`paintRectangularStripedBackground(Component c, Graphics g, int startX, int startY, int width, int height, SubstanceColorScheme colorScheme, BufferedImage stripeImage, int stripeOffset, float borderAlpha, boolean isVertical)`
Paints rectangular gradient background with spots and optional replicated stripe image.
`static void`
`paintSimpleBorder(Component c, Graphics2D g2d, int width, int height, SubstanceColorScheme borderColorScheme)`
Paints simple border.
`static void`
`paintSimpleBorderAliased(Component c, Graphics2D g2d, int width, int height, SubstanceColorScheme colorScheme)`
`static void`
`paintSplitDividerBumpImage(Graphics g, SubstanceSplitPaneDivider divider, int x, int y, int width, int height, boolean isHorizontal, SubstanceColorScheme colorScheme)`
Paints the bump dots on the split pane dividers.
`static void`
`paintTextComponentBorder(JComponent c, Graphics graphics, int x, int y, int width, int height, float radius, SubstanceColorScheme borderScheme)`
Paints border instance of specified dimensions and status.
`static Icon`
`toGreyscale(Icon icon)`
Translated the specified icon to grey scale.

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

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

## Constructor Details

### SubstanceImageCreator

public SubstanceImageCreator()

## Method Details

### paintBorder

public static void paintBorder(Component c, Graphics2D graphics, int x, int y, int width, int height, float radius, SubstanceColorScheme borderScheme)
Paints border instance of specified dimensions and status.

Parameters:
  `c` - Component.
  `graphics` - Graphics context.
  `x` - Component left X (in graphics context).
  `y` - Component top Y (in graphics context).
  `width` - Border width.
  `height` - Border height.
  `radius` - Border radius.
  `borderScheme` - border color scheme.

### paintTextComponentBorder

public static void paintTextComponentBorder(JComponent c, Graphics graphics, int x, int y, int width, int height, float radius, SubstanceColorScheme borderScheme)
Paints border instance of specified dimensions and status.

Parameters:
  `c` - Component.
  `graphics` - Graphics context.
  `x` - Component left X (in graphics context).
  `y` - Component top Y (in graphics context).
  `width` - Border width.
  `height` - Border height.
  `radius` - Border radius.
  `borderScheme` - Border color scheme.

### getArrowIcon

public static Icon getArrowIcon(int fontSize, int direction, SubstanceColorScheme colorScheme)
Returns arrow icon for the specified parameters.

Parameters:
  `fontSize` - Font size.
  `direction` - Arrow direction.
  `colorScheme` - Arrow icon color scheme.
Returns:
  Arrow icon.

### getArrowIcon

public static Icon getArrowIcon(float width, float height, float strokeWidth, int direction, SubstanceColorScheme scheme)
Retrieves arrow icon.

Parameters:
  `width` - Arrow width.
  `height` - Arrow height.
  `strokeWidth` - Stroke width.
  `direction` - Arrow direction.
  `scheme` - Color scheme for the arrow.
Returns:
  Arrow image.
See Also:
  - `SwingConstants.NORTH`
  - `SwingConstants.WEST`
  - `SwingConstants.SOUTH`
  - `SwingConstants.EAST`

### getArrow

public static BufferedImage getArrow(float width, float height, float strokeWidth, int direction, SubstanceColorScheme scheme)
Retrieves arrow image.

Parameters:
  `width` - Arrow width.
  `height` - Arrow height.
  `strokeWidth` - Stroke width.
  `direction` - Arrow direction.
  `scheme` - Color scheme for the arrow.
Returns:
  Arrow image.
See Also:
  - `SwingConstants.NORTH`
  - `SwingConstants.WEST`
  - `SwingConstants.SOUTH`
  - `SwingConstants.EAST`
  - `SwingConstants.CENTER`

### getDoubleArrowIconDelta

public static Icon getDoubleArrowIconDelta(int fontSize, float deltaWidth, float deltaHeight, float deltaStrokeWidth, int direction, SubstanceColorScheme colorScheme)
Returns double arrow icon for the specified parameters.

Parameters:
  `fontSize` - Font size.
  `deltaWidth` - Arrow width delta.
  `deltaHeight` - Arrow height delta.
  `deltaStrokeWidth` - Arrow stroke width delta.
  `direction` - Arrow direction.
  `colorScheme` - Color scheme for the arrow.
Returns:
  Double arrow icon.

### getDoubleArrowIcon

public static Icon getDoubleArrowIcon(int fontSize, float width, float height, float strokeWidth, int direction, SubstanceColorScheme colorScheme)
Retrieves arrow icon.

Parameters:
  `width` - Arrow width.
  `height` - Arrow height.
  `strokeWidth` - Stroke width.
  `direction` - Arrow direction.
  `colorScheme` - Color scheme for the arrow.
Returns:
  Arrow image.
See Also:
  - `SwingConstants.NORTH`
  - `SwingConstants.WEST`
  - `SwingConstants.SOUTH`
  - `SwingConstants.EAST`

### getRotated

public static BufferedImage getRotated(BufferedImage bi, int quadrantClockwise)
Returns rotated image.

Parameters:
  `bi` - Image to rotate.
  `quadrantClockwise` - Amount of quadrants to rotate in clockwise directio. The rotation angle is 90 times this value.
Returns:
  Rotated image.

### getRotated

public static VolatileImage getRotated(VolatileImage bi, int quadrantClockwise)
Returns rotated image.

Parameters:
  `bi` - Image to rotate.
  `quadrantClockwise` - Amount of quadrants to rotate in clockwise directio. The rotation angle is 90 times this value.
Returns:
  Rotated image.

### toGreyscale

public static Icon toGreyscale(Icon icon)
Translated the specified icon to grey scale.

Parameters:
  `icon` - Icon.
Returns:
  Greyscale version of the specified icon.

### makeTransparent

public static Icon makeTransparent(Component c, Icon icon, double alpha)
Makes the specified icon transparent.

Parameters:
  `c` - Component.
  `icon` - Icon.
  `alpha` - The alpha of the resulting image. The closer this value is to 0.0, the more transparent resulting image will be.
Returns:
  Transparent version of the specified icon.

### getRadioButton

public static BufferedImage getRadioButton(JComponent component, SubstanceFillPainter fillPainter, SubstanceBorderPainter borderPainter, int dimension, ComponentState componentState, int offsetX, SubstanceColorScheme fillColorScheme, SubstanceColorScheme markColorScheme, SubstanceColorScheme borderColorScheme, float checkMarkVisibility)
Retrieves radio button of the specified size that matches the specified parameters.

Parameters:
  `component` - Component.
  `dimension` - Radio button dimension.
  `componentState` - Component state.
  `offsetX` - Offset on X axis - should be positive in order to see the entire radio button.
  `fillColorScheme` - Color scheme for the inner fill.
  `markColorScheme` - Color scheme for the check mark.
  `borderColorScheme` - Color scheme for the border.
  `checkMarkVisibility` - Check mark visibility in 0.0-1.0 range.
Returns:
  Radio button of the specified size that matches the specified parameters.

### getCheckBox

public static BufferedImage getCheckBox(AbstractButton button, SubstanceFillPainter fillPainter, SubstanceBorderPainter borderPainter, int dimension, ComponentState componentState, SubstanceColorScheme fillColorScheme, SubstanceColorScheme markColorScheme, SubstanceColorScheme borderColorScheme, float checkMarkVisibility, boolean isCheckMarkFadingOut)
Retrieves check box of the specified size that matches the specified component state.

Parameters:
  `button` - Button for the check mark.
  `dimension` - Check box size.
  `componentState` - Component state.
  `fillColorScheme` - Color scheme for the inner fill.
  `markColorScheme` - Color scheme for the check mark.
  `borderColorScheme` - Color scheme for the border.
  `checkMarkVisibility` - Check mark visibility in 0.0-1.0 range.
  `isCheckMarkFadingOut` - if `true`, the value of `interpolationCyclePos10` is used as the alpha channel.
Returns:
  Check box of the specified size that matches the specified component state.

### paintCompositeRoundedBackground

public static void paintCompositeRoundedBackground(JComponent component, Graphics g, int width, int height, int cornerRadius, AbstractButton decrButton, AbstractButton incrButton, boolean flipSides)
Retrieves composite background for the specified parameters. The composite background consists of three layers:

1. Layer that matches the `increased` state.
2. Layer that matches the `decreased` state.
3. Regular layer with rounded background.

The layers are drawn in the following order:

1. The left half of the first layer
2. The right half of the second layer
3. The third layer

Combined together, the layers create the image for scrollbar track with continuation of the arrow increase and decrease buttons.

Parameters:
  `component` - Component.
  `width` - Image width.
  `height` - Image height.
  `cornerRadius` - Corner radius.
  `decrButton` - The `decrease` button.
  `incrButton` - The `increase` button.
  `flipSides` - If `true`, the drawn halves of the first and the second layers above will be swapped.

### getMinimizeIcon

public static Icon getMinimizeIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)
Returns `minimize` icon.

Parameters:
  `scheme` - Color scheme for the icon.
Returns:
  `Minimize` icon.

### getMinimizeIcon

public static Icon getMinimizeIcon(int iSize, SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)
Returns `minimize` icon.

Parameters:
  `iSize` - Icon dimension.
  `scheme` - Color scheme for the icon.
Returns:
  `Minimize` icon.

### getRestoreIcon

public static Icon getRestoreIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)
Returns `restore` icon.

Parameters:
  `scheme` - Color scheme for the icon.
Returns:
  `Restore` icon.

### getMaximizeIcon

public static Icon getMaximizeIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)
Returns `maximize` icon.

Parameters:
  `scheme` - Color scheme for the icon.
Returns:
  `Maximize` icon.

### getMaximizeIcon

public static Icon getMaximizeIcon(int iSize, SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)
Returns `maximize` icon.

Parameters:
  `iSize` - Icon dimension.
  `scheme` - Color scheme for the icon.
Returns:
  `Maximize` icon.

### getCloseIcon

public static Icon getCloseIcon(SubstanceColorScheme scheme, SubstanceColorScheme backgroundScheme)
Returns `close` icon.

Parameters:
  `scheme` - Color scheme for the icon.
Returns:
  `Close` icon.

### getCloseIcon

public static Icon getCloseIcon(int iSize, SubstanceColorScheme colorScheme, SubstanceColorScheme backgroundScheme)
Returns `close` icon.

Parameters:
  `iSize` - Icon dimension.
  `colorScheme` - Color scheme for the icon.
Returns:
  `Close` icon.

### paintRectangularBackground

public static void paintRectangularBackground(Component c, Graphics g, int startX, int startY, int width, int height, SubstanceColorScheme colorScheme, float borderAlpha, boolean isVertical)
Paints rectangular gradient background.

Parameters:
  `g` - Graphic context.
  `startX` - Background starting X coord.
  `startY` - Background starting Y coord.
  `width` - Background width.
  `height` - Background height.
  `colorScheme` - Color scheme for the background.
  `borderAlpha` - Border alpha.
  `isVertical` - if `true`, the gradient will be vertical, if `false`, the gradient will be horizontal.

### paintSimpleBorder

public static void paintSimpleBorder(Component c, Graphics2D g2d, int width, int height, SubstanceColorScheme borderColorScheme)
Paints simple border.

Parameters:
  `g2d` - Graphics context.
  `width` - Border width.
  `height` - Border height.
  `borderColorScheme` - Border color scheme.

### paintSimpleBorderAliased

public static void paintSimpleBorderAliased(Component c, Graphics2D g2d, int width, int height, SubstanceColorScheme colorScheme)

### paintRectangularStripedBackground

public static void paintRectangularStripedBackground(Component c, Graphics g, int startX, int startY, int width, int height, SubstanceColorScheme colorScheme, BufferedImage stripeImage, int stripeOffset, float borderAlpha, boolean isVertical)
Paints rectangular gradient background with spots and optional replicated stripe image.

Parameters:
  `g` - Graphics context.
  `startX` - X start coordinate.
  `startY` - Y start coordinate.
  `width` - Background width.
  `height` - Background height.
  `colorScheme` - Color scheme for the background.
  `stripeImage` - Stripe image to replicate.
  `stripeOffset` - Offset of the first stripe replication.
  `borderAlpha` - Border alpha.
  `isVertical` - Indication of horizontal / vertical orientation.

### getStripe

public static BufferedImage getStripe(int baseSize, Color color)
Returns diagonal stripe image.

Parameters:
  `baseSize` - Stripe base in pixels.
  `color` - Stripe color.
Returns:
  Diagonal stripe image.

### getDragImage

public static BufferedImage getDragImage(Component c, SubstanceColorScheme colorScheme, int width, int height, int maxNumberOfStripes)
Returns drag bumps image.

Parameters:
  `c` - Component.
  `colorScheme` - Color scheme.
  `width` - Drag bumps width.
  `height` - Drag bumps height.
  `maxNumberOfStripes` - The maximum number of bump stripes (rows or columns).
Returns:
  Drag bumps image.

### paintSplitDividerBumpImage

public static void paintSplitDividerBumpImage(Graphics g, SubstanceSplitPaneDivider divider, int x, int y, int width, int height, boolean isHorizontal, SubstanceColorScheme colorScheme)
Paints the bump dots on the split pane dividers.

Parameters:
  `g` - Graphics context.
  `divider` - Split pane divider.
  `x` - X coordinate of the bump dots.
  `y` - Y coordinate of the bump dots.
  `width` - Width of the bump dots area.
  `height` - Height of the bump dots area.
  `isHorizontal` - Indicates whether the dots are horizontal.
  `colorScheme` - First color scheme.

### getResizeGripImage

public static BufferedImage getResizeGripImage(Component c, SubstanceColorScheme colorScheme, int dimension, boolean isCrowded)
Returns resize grip image.

Parameters:
  `c` - Component.
  `colorScheme` - Color scheme.
  `dimension` - Resize grip width.
  `isCrowded` - Indicates whether the grips should be painted closely.
Returns:
  Resize grip image.

### getTreeIcon

public static BufferedImage getTreeIcon(JTree tree, SubstanceColorScheme fillScheme, SubstanceColorScheme borderScheme, boolean isCollapsed)
Retrieves tree icon.

Parameters:
  `tree` - Tree.
  `fillScheme` - Icon fill color scheme.
  `borderScheme` - Icon border color scheme.
  `isCollapsed` - Collapsed state.
Returns:
  Tree icon.

### getSingleCrayon

public static BufferedImage getSingleCrayon(Color mainColor, int width, int height)
Retrieves a single crayon of the specified color and dimensions for the crayon panel in color chooser.

Parameters:
  `mainColor` - Crayon main color.
  `width` - Crayon width.
  `height` - Crayon height.
Returns:
  Crayon image.

### getCrayonsImage

public static Image getCrayonsImage()
Retrieves crayons image for the crayon panel of color chooser.

Returns:
  Crayons image.

### getHexaMarker

public static Icon getHexaMarker(int value, SubstanceColorScheme colorScheme)
Returns small icon representation of the specified integer value. The remainder of dividing the integer by 16 is translated to four circles arranged in 2*2 grid.

Parameters:
  `value` - Integer value to represent.
  `colorScheme` - Icon color scheme.
Returns:
  Icon representation of the specified integer value.

### getSearchIcon

public static Icon getSearchIcon(int dimension, SubstanceColorScheme colorScheme, boolean leftToRight)
Returns search icon.

Parameters:
  `dimension` - Icon dimension.
  `colorScheme` - Icon color scheme.
  `leftToRight` - LTR indication of the resulting icon.
Returns:
  Search icon.

### getWatermarkIcon

public static Icon getWatermarkIcon(SubstanceWatermark watermark)
Returns an icon that matches the specified watermark.

Parameters:
  `watermark` - Watermark instance.
Returns:
  Icon that matches the specified watermark.

### getSmallLockIcon

public static Icon getSmallLockIcon(SubstanceColorScheme scheme, Component c)
Returns a lock icon that matches the specified scheme.

Parameters:
  `scheme` - Scheme instance.
Returns:
  Lock icon that matches the specified scheme.

### getNegated

public static BufferedImage getNegated(BufferedImage bi)
Returns the negative of the specified image.

Parameters:
  `bi` - Image.
Returns:
  The negative of the specified image.

### getColorSchemeImage

public static BufferedImage getColorSchemeImage(Component comp, Icon original, SubstanceColorScheme colorScheme, float originalBrightnessFactor)
Creates a new version of the specified icon that is rendered in the colors of the specified color scheme.

Parameters:
  `comp` - Component.
  `original` - The original icon.
  `colorScheme` - Color scheme.
Returns:
  Scheme-based version of the original icon.

### getColorSchemeImage

public static BufferedImage getColorSchemeImage(BufferedImage original, SubstanceColorScheme colorScheme, float originalBrightnessFactor)
Creates a new version of the specified image that is rendered in the colors of the specified color scheme.

Parameters:
  `original` - The original image.
  `colorScheme` - Color scheme.
Returns:
  Scheme-based version of the original icon.