Package org.jdesktop.swingx.image
Class ColorTintFilter
- java.lang.Object
-
- org.jdesktop.beans.AbstractBean
-
- org.jdesktop.swingx.image.AbstractFilter
-
- org.jdesktop.swingx.image.ColorTintFilter
-
- All Implemented Interfaces:
java.awt.image.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 pixelcS
: color of the source pixelcM
: the solid color to mix with the source imagemixValue
: strength of the mix, a value between 0.0 and 1.0
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.Color
mixColor
private float
mixValue
private int[]
preMultipliedBlue
private int[]
preMultipliedGreen
private int[]
preMultipliedRed
-
Constructor Summary
Constructors Constructor Description ColorTintFilter(java.awt.Color mixColor, float mixValue)
Creates a new color mixer filter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.image.BufferedImage
filter(java.awt.image.BufferedImage src, java.awt.image.BufferedImage dst)
java.awt.Color
getMixColor()
Returns the solid mix color of this filter.float
getMixValue()
Returns the mix value of this filter.private void
mixColor(int[] pixels)
-
Methods inherited from class org.jdesktop.swingx.image.AbstractFilter
createCompatibleDestImage, getBounds2D, getPoint2D, getRenderingHints
-
Methods inherited from class org.jdesktop.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
-
-
-
Constructor Detail
-
ColorTintFilter
public ColorTintFilter(java.awt.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 imagemixValue
- the strength of the mix, between 0.0 and 1.0; if the specified value lies outside this range, it is clamped- Throws:
java.lang.IllegalArgumentException
- ifmixColor
is null
-
-
Method Detail
-
getMixValue
public float getMixValue()
Returns the mix value of this filter.
- Returns:
- the mix value, between 0.0 and 1.0
-
getMixColor
public java.awt.Color getMixColor()
Returns the solid mix color of this filter.
- Returns:
- the solid color used for mixing
-
filter
public java.awt.image.BufferedImage filter(java.awt.image.BufferedImage src, java.awt.image.BufferedImage dst)
- Specified by:
filter
in interfacejava.awt.image.BufferedImageOp
- Specified by:
filter
in classAbstractFilter
-
mixColor
private void mixColor(int[] pixels)
-
-