Class ColorTintFilter

All Implemented Interfaces:
BufferedImageOp

public class ColorTintFilter extends AbstractFilter

A color tint filter can be used to mix a solid color to an image. The result is an image tinted by the specified color. The force of the effect can be controlled with the mixValue, a number between 0.0 and 1.0 that can be seen as the percentage of the mix (0.0 does not affect the source image and 1.0 replaces all the pixels by the solid color).

The color of the pixels in the resulting image is computed as follows:

 cR = cS * (1 - mixValue) + cM * mixValue
 

Definition of the parameters:

  • cR: color of the resulting pixel
  • cS: color of the source pixel
  • cM: the solid color to mix with the source image
  • mixValue: strength of the mix, a value between 0.0 and 1.0
  • Field Details

    • mixColor

      private final Color mixColor
    • mixValue

      private final float mixValue
    • preMultipliedRed

      private int[] preMultipliedRed
    • preMultipliedGreen

      private int[] preMultipliedGreen
    • preMultipliedBlue

      private int[] preMultipliedBlue
  • Constructor Details

    • ColorTintFilter

      public ColorTintFilter(Color mixColor, float mixValue)

      Creates a new color mixer filter. The specified color will be used to tint the source image, with a mixing strength defined by mixValue.

      Parameters:
      mixColor - the solid color to mix with the source image
      mixValue - the strength of the mix, between 0.0 and 1.0; if the specified value lies outside this range, it is clamped
      Throws:
      IllegalArgumentException - if mixColor is null
  • Method Details

    • getMixValue

      public float getMixValue()

      Returns the mix value of this filter.

      Returns:
      the mix value, between 0.0 and 1.0
    • getMixColor

      public Color getMixColor()

      Returns the solid mix color of this filter.

      Returns:
      the solid color used for mixing
    • filter

      public BufferedImage filter(BufferedImage src, BufferedImage dst)
      Specified by:
      filter in interface BufferedImageOp
      Specified by:
      filter in class AbstractFilter
    • mixColor

      private void mixColor(int[] pixels)