Class PaintAlpha
- java.lang.Object
-
- org.jfree.chart.util.PaintAlpha
-
public class PaintAlpha extends java.lang.ObjectThis class contains static methods for the manipulation of objects of typePaintThe intention is to honour the alpha-channel in the process.
PaintAlphawas originally conceived to improve the rendering of 3D Shapes with transparent colours and to allow invisible bars by making them completely transparent.Previously
Color.darker()was used for this, which always returns an opaque colour.Additionally there are methods to control the behaviour and in particular a
cloneImage(..)method which is needed to darken objects of typeTexturePaint.
-
-
Field Summary
Fields Modifier and Type Field Description private static doubleFACTORMultiplier for thedarkerMethods.
(taken fromColor.FACTOR)private static booleanlegacyAlpha
-
Constructor Summary
Constructors Constructor Description PaintAlpha()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.awt.image.BufferedImagecloneImage(java.awt.image.BufferedImage image)Clone aBufferedImage.private static java.awt.Colordarker(java.awt.Color paint)Similar toColor.darker().private static java.awt.GradientPaintdarker(java.awt.GradientPaint paint)Create a newGradientPaintwith its colors darkened.static java.awt.Paintdarker(java.awt.Paint paint)Create a new (if possible, darker)Paintof the same Type.private static java.awt.PaintdarkerLinearGradientPaint(java.awt.LinearGradientPaint paint)Create a new Gradient with its colours darkened.private static java.awt.PaintdarkerRadialGradientPaint(java.awt.RadialGradientPaint paint)Create a new Gradient with its colours darkened.private static java.awt.TexturePaintdarkerTexturePaint(java.awt.TexturePaint paint)Create a newTexturePaintwith its colors darkened.static booleansetLegacyAlpha(boolean legacyAlpha)Per defaultPaintAlphawill try to honour alpha-channel information.
-
-
-
Field Detail
-
FACTOR
private static final double FACTOR
Multiplier for thedarkerMethods.
(taken fromColor.FACTOR)- See Also:
- Constant Field Values
-
legacyAlpha
private static boolean legacyAlpha
-
-
Method Detail
-
setLegacyAlpha
public static boolean setLegacyAlpha(boolean legacyAlpha)
Per defaultPaintAlphawill try to honour alpha-channel information. In the past this was not the case. If you wish legacy functionality for your application you can request this here.- Parameters:
legacyAlpha- boolean- Returns:
- the previous setting
-
darker
public static java.awt.Paint darker(java.awt.Paint paint)
Create a new (if possible, darker)Paintof the same Type. If the Type is not supported, the originalPaintis returned.- Parameters:
paint- aPaintimplementation (e.g.Color,GradientPaint,TexturePaint,..)- Returns:
- a (usually new, see above)
Paint
-
darker
private static java.awt.Color darker(java.awt.Color paint)
Similar toColor.darker().The essential difference is that this method maintains the alpha-channel unchanged
- Parameters:
paint- aColor- Returns:
- a darker version of the
Color
-
darker
private static java.awt.GradientPaint darker(java.awt.GradientPaint paint)
Create a newGradientPaintwith its colors darkened.- Parameters:
paint- the gradient paint (nullnot permitted).- Returns:
- a darker version of the
GradientPaint
-
darkerLinearGradientPaint
private static java.awt.Paint darkerLinearGradientPaint(java.awt.LinearGradientPaint paint)
Create a new Gradient with its colours darkened.- Parameters:
paint- aLinearGradientPaint- Returns:
- a darker version of the
LinearGradientPaint
-
darkerRadialGradientPaint
private static java.awt.Paint darkerRadialGradientPaint(java.awt.RadialGradientPaint paint)
Create a new Gradient with its colours darkened.- Parameters:
paint- aRadialGradientPaint- Returns:
- a darker version of the
RadialGradientPaint
-
darkerTexturePaint
private static java.awt.TexturePaint darkerTexturePaint(java.awt.TexturePaint paint)
Create a newTexturePaintwith its colors darkened.This entails cloning the underlying
BufferedImage, then darkening each color-pixel individually!- Parameters:
paint- aTexturePaint- Returns:
- a darker version of the
TexturePaint
-
cloneImage
public static java.awt.image.BufferedImage cloneImage(java.awt.image.BufferedImage image)
Clone aBufferedImage.Note: when constructing the clone, the original Color Model Object is reused.
That keeps things simple and should not be a problem, as all known Color Models
(IndexColorModel,DirectColorModel,ComponentColorModel) are immutable.- Parameters:
image- original BufferedImage to clone- Returns:
- a new BufferedImage reusing the original's Color Model and containing a clone of its pixels
-
-