Class GraphicsUtil
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic AffineTransform
static final ColorModel
Standard prebuilt Linear_sRGB color model with no alphastatic final ColorModel
Standard prebuilt Linear_sRGB color model with premultiplied alpha.static final ColorModel
Standard prebuilt Linear_sRGB color model with unpremultiplied alpha.static final ColorModel
Standard prebuilt sRGB color model with no alpha.static final ColorModel
Standard prebuilt sRGB color model with premultiplied alpha.static final ColorModel
Standard prebuilt sRGB color model with unpremultiplied alpha.static final boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ColorModel
coerceColorModel
(ColorModel cm, boolean newAlphaPreMult) Create a new ColorModel with it's alpha premultiplied state matching newAlphaPreMult.static ColorModel
coerceData
(WritableRaster wr, ColorModel cm, boolean newAlphaPreMult) Coerces data within a bufferedImage to match newAlphaPreMult, Note that this can not change the colormodel of bi so youstatic CachableRed
This method will return a CacheableRed that has it's data in the linear sRGB colorspace.static CachableRed
convertTosRGB
(CachableRed src) This method will return a CacheableRed that has it's data in the sRGB colorspace.static void
copyBand
(Raster src, int srcBand, WritableRaster dst, int dstBand) static void
copyBand
(Raster src, Rectangle sR, int sBand, WritableRaster dst, Rectangle dR, int dBand) static void
copyData
(BufferedImage src, BufferedImage dst) Copies data from one bufferedImage to another paying attention to the state of AlphaPreMultiplied.static void
copyData
(BufferedImage src, Rectangle srcRect, BufferedImage dst, Point destP) Copies data from one bufferedImage to another paying attention to the state of AlphaPreMultiplied.static void
copyData
(Raster src, WritableRaster dst) Copies data from one raster to another.static void
copyData_FALLBACK
(Raster src, WritableRaster dst) static void
copyData_INT_PACK
(Raster src, WritableRaster dst) An internal optimized version of copyData designed to work on Integer packed data with a SinglePixelPackedSampleModel.static WritableRaster
copyRaster
(Raster ras) Creates a new raster that has a copy of the data inras
.static WritableRaster
copyRaster
(Raster ras, int minX, int minY) Creates a new raster that has a copy of the data inras
.static Graphics2D
static Graphics2D
createGraphics
(BufferedImage bi, RenderingHints hints) This is a wrapper around the system's BufferedImage.createGraphics that arranges for bi to be stored in a Rendering hint in the returned Graphics2D.protected static void
protected static void
static void
static void
drawImage
(Graphics2D g2d, RenderableImage filter) Draws aFilter
(RenderableImage
) into a Graphics 2D.static void
drawImage
(Graphics2D g2d, RenderableImage filter, RenderContext rc) Draws aFilter
(RenderableImage
) into a Graphics 2D after taking into account a particularRenderContext
.static void
drawImage
(Graphics2D g2d, RenderedImage ri) Drawsri
intog2d
.static void
drawImage
(Graphics2D g2d, CachableRed cr) Drawscr
intog2d
.static BufferedImage
getDestination
(Graphics2D g2d) static Rectangle
static ColorModel
static ColorSpace
static boolean
static boolean
is_INT_PACK_Data
(SampleModel sm, boolean requireAlpha) static ColorModel
makeLinear_sRGBCM
(boolean premult) Method that returns either Linear_sRGB_Pre or Linear_sRGB_UnPre based on premult flag.static BufferedImage
makeLinearBufferedImage
(int width, int height, boolean premult) Constructs a BufferedImage with a linear sRGB colorModel, and alpha.static WritableRaster
makeRasterWritable
(Raster ras) Coercesras
to be writable.static WritableRaster
makeRasterWritable
(Raster ras, int minX, int minY) Coercesras
to be writable.protected static void
protected static void
static void
static CachableRed
wrap
(RenderedImage ri) Convertes any RenderedImage to a CacheableRed.
-
Field Details
-
IDENTITY
-
WARN_DESTINATION
public static final boolean WARN_DESTINATION -
Linear_sRGB
Standard prebuilt Linear_sRGB color model with no alpha -
Linear_sRGB_Pre
Standard prebuilt Linear_sRGB color model with premultiplied alpha. -
Linear_sRGB_Unpre
Standard prebuilt Linear_sRGB color model with unpremultiplied alpha. -
sRGB
Standard prebuilt sRGB color model with no alpha. -
sRGB_Pre
Standard prebuilt sRGB color model with premultiplied alpha. -
sRGB_Unpre
Standard prebuilt sRGB color model with unpremultiplied alpha.
-
-
Constructor Details
-
GraphicsUtil
public GraphicsUtil()
-
-
Method Details
-
drawImage
Drawsri
intog2d
. It does this be requesting tiles fromri
and drawing them individually ing2d
it also takes care of some colorspace and alpha issues.- Parameters:
g2d
- The Graphics2D to draw into.ri
- The image to be drawn.
-
drawImage
Drawscr
intog2d
. It does this be requesting tiles fromri
and drawing them individually ing2d
it also takes care of some colorspace and alpha issues.- Parameters:
g2d
- The Graphics2D to draw into.cr
- The image to be drawn.
-
drawImage
Draws aFilter
(RenderableImage
) into a Graphics 2D after taking into account a particularRenderContext
.This method also attempts to unwind the rendering chain a bit. So it knows about certain operations (like affine, pad, composite), rather than applying each of these operations in turn it accounts for their affects through modifications to the Graphics2D. This avoids generating lots of intermediate images.
- Parameters:
g2d
- The Graphics to draw into.filter
- The filter to drawrc
- The render context that controls the drawing operation.
-
drawImage
Draws aFilter
(RenderableImage
) into a Graphics 2D.This method also attempts to unwind the rendering chain a bit. So it knows about certain operations (like affine, pad, composite), rather than applying each of these operations in turn it accounts for their affects through modifications to the Graphics2D. This avoids generating lots of intermediate images.
- Parameters:
g2d
- The Graphics to draw into.filter
- The filter to draw
-
createGraphics
This is a wrapper around the system's BufferedImage.createGraphics that arranges for bi to be stored in a Rendering hint in the returned Graphics2D. This allows for accurate determination of the 'devices' size, and colorspace.- Parameters:
bi
- The BufferedImage that the returned Graphics should draw into.- Returns:
- A Graphics2D that draws into BufferedImage with
bi
stored in a rendering hint.
-
createGraphics
-
getDestination
-
getDestinationColorModel
-
getDestinationColorSpace
-
getDestinationBounds
-
makeLinear_sRGBCM
Method that returns either Linear_sRGB_Pre or Linear_sRGB_UnPre based on premult flag.- Parameters:
premult
- True if the ColorModel should have premultiplied alpha.- Returns:
- a ColorMdoel with Linear sRGB colorSpace and
the alpha channel set in accordance with
premult
-
makeLinearBufferedImage
Constructs a BufferedImage with a linear sRGB colorModel, and alpha.- Parameters:
width
- The desired width of the BufferedImageheight
- The desired height of the BufferedImagepremult
- The desired state of alpha premultiplied- Returns:
- The requested BufferedImage.
-
convertToLsRGB
This method will return a CacheableRed that has it's data in the linear sRGB colorspace. Ifsrc
is already in linear sRGB then this method does nothing and returnssrc
. Otherwise it creates a transform that will convertsrc
's output to linear sRGB and returns that CacheableRed.- Parameters:
src
- The image to convert to linear sRGB.- Returns:
- An equivilant image to
src
who's data is in linear sRGB.
-
convertTosRGB
This method will return a CacheableRed that has it's data in the sRGB colorspace. Ifsrc
is already in sRGB then this method does nothing and returnssrc
. Otherwise it creates a transform that will convertsrc
's output to sRGB and returns that CacheableRed.- Parameters:
src
- The image to convert to sRGB.- Returns:
- An equivilant image to
src
who's data is in sRGB.
-
wrap
Convertes any RenderedImage to a CacheableRed.If
ri
is already a CacheableRed it casts it down and returns it.In cases where
ri
is not already a CacheableRed it wrapsri
with a helper class. The wrapped CacheableRed "Pretends" that it has no sources since it has no way of inteligently handling the dependency/dirty region calls if it exposed the source.- Parameters:
ri
- The RenderedImage to convert.- Returns:
- a CacheableRed that contains the same data as ri.
-
copyData_INT_PACK
An internal optimized version of copyData designed to work on Integer packed data with a SinglePixelPackedSampleModel. Only the region of overlap between src and dst is copied. Calls to this should be preflighted with is_INT_PACK_Data on both src and dest (requireAlpha can be false).- Parameters:
src
- The source of the datadst
- The destination for the data.
-
copyData_FALLBACK
-
copyData
Copies data from one raster to another. Only the region of overlap between src and dst is copied.Src
andDst
must have compatible SampleModels.- Parameters:
src
- The source of the datadst
- The destination for the data.
-
copyRaster
Creates a new raster that has a copy of the data inras
. This is highly optimized for speed. There is no provision for changing any aspect of the SampleModel. This method should be used when you need to change the contents of a Raster that you do not "own" (ie the result of agetData
call).- Parameters:
ras
- The Raster to copy.- Returns:
- A writable copy of
ras
-
copyRaster
Creates a new raster that has a copy of the data inras
. This is highly optimized for speed. There is no provision for changing any aspect of the SampleModel. However you can specify a new location for the returned raster. This method should be used when you need to change the contents of a Raster that you do not "own" (ie the result of agetData
call).- Parameters:
ras
- The Raster to copy.minX
- The x location for the upper left corner of the returned WritableRaster.minY
- The y location for the upper left corner of the returned WritableRaster.- Returns:
- A writable copy of
ras
-
makeRasterWritable
Coercesras
to be writable. The returned Raster continues to reference the DataBuffer from ras, so modifications to the returned WritableRaster will be seen in ras.This method should only be used if you need a WritableRaster due to an interface (such as to construct a BufferedImage), but have no intention of modifying the contents of the returned Raster. If you have any doubt about other users of the data in
ras
, use copyRaster (above).- Parameters:
ras
- The raster to make writable.- Returns:
- A Writable version of ras (shares DataBuffer with
ras
).
-
makeRasterWritable
Coercesras
to be writable. The returned Raster continues to reference the DataBuffer from ras, so modifications to the returned WritableRaster will be seen in ras.You can specify a new location for the returned WritableRaster, this is especially useful for constructing BufferedImages which require the Raster to be at (0,0). This method should only be used if you need a WritableRaster due to an interface (such as to construct a BufferedImage), but have no intention of modifying the contents of the returned Raster. If you have any doubt about other users of the data in
ras
, use copyRaster (above).- Parameters:
ras
- The raster to make writable.minX
- The x location for the upper left corner of the returned WritableRaster.minY
- The y location for the upper left corner of the returned WritableRaster.- Returns:
- A Writable version of
ras
with it's upper left hand coordinate set to minX, minY (shares it's DataBuffer withras
).
-
coerceColorModel
Create a new ColorModel with it's alpha premultiplied state matching newAlphaPreMult.- Parameters:
cm
- The ColorModel to change the alpha premult state of.newAlphaPreMult
- The new state of alpha premult.- Returns:
- A new colorModel that has isAlphaPremultiplied() equal to newAlphaPreMult.
-
coerceData
Coerces data within a bufferedImage to match newAlphaPreMult, Note that this can not change the colormodel of bi so you- Parameters:
wr
- The raster to change the state of.cm
- The colormodel currently associated with data in wr.newAlphaPreMult
- The desired state of alpha Premult for raster.- Returns:
- A new colormodel that matches newAlphaPreMult.
-
multiplyAlpha
-
divideAlpha
-
copyData
Copies data from one bufferedImage to another paying attention to the state of AlphaPreMultiplied.- Parameters:
src
- The sourcedst
- The destination
-
copyData
Copies data from one bufferedImage to another paying attention to the state of AlphaPreMultiplied.- Parameters:
src
- The sourcesrcRect
- The Rectangle of source data to be copieddst
- The destinationdestP
- The Place for the upper left corner of srcRect in dst.
-
copyBand
-
copyBand
public static void copyBand(Raster src, Rectangle sR, int sBand, WritableRaster dst, Rectangle dR, int dBand) -
is_INT_PACK_Data
-
is_BYTE_COMP_Data
-
divide_INT_PACK_Data
-
mult_INT_PACK_Data
-
divide_BYTE_COMP_Data
-
mult_BYTE_COMP_Data
-