public class GraphicsUtil
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.awt.geom.AffineTransform |
IDENTITY |
static java.awt.image.ColorModel |
Linear_sRGB
Standard prebuilt Linear_sRGB color model with no alpha
|
static java.awt.image.ColorModel |
Linear_sRGB_Pre
Standard prebuilt Linear_sRGB color model with premultiplied alpha.
|
static java.awt.image.ColorModel |
Linear_sRGB_Unpre
Standard prebuilt Linear_sRGB color model with unpremultiplied alpha.
|
static java.awt.image.ColorModel |
sRGB
Standard prebuilt sRGB color model with no alpha.
|
static java.awt.image.ColorModel |
sRGB_Pre
Standard prebuilt sRGB color model with premultiplied alpha.
|
static java.awt.image.ColorModel |
sRGB_Unpre
Standard prebuilt sRGB color model with unpremultiplied alpha.
|
static boolean |
WARN_DESTINATION |
Constructor and Description |
---|
GraphicsUtil() |
Modifier and Type | Method and Description |
---|---|
static java.awt.image.ColorModel |
coerceColorModel(java.awt.image.ColorModel cm,
boolean newAlphaPreMult)
Create a new ColorModel with it's alpha premultiplied state matching
newAlphaPreMult.
|
static java.awt.image.ColorModel |
coerceData(java.awt.image.WritableRaster wr,
java.awt.image.ColorModel cm,
boolean newAlphaPreMult)
Coerces data within a bufferedImage to match newAlphaPreMult,
Note that this can not change the colormodel of bi so you
|
static CachableRed |
convertToLsRGB(CachableRed src)
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(java.awt.image.Raster src,
int srcBand,
java.awt.image.WritableRaster dst,
int dstBand) |
static void |
copyBand(java.awt.image.Raster src,
java.awt.Rectangle sR,
int sBand,
java.awt.image.WritableRaster dst,
java.awt.Rectangle dR,
int dBand) |
static void |
copyData_FALLBACK(java.awt.image.Raster src,
java.awt.image.WritableRaster dst) |
static void |
copyData_INT_PACK(java.awt.image.Raster src,
java.awt.image.WritableRaster dst)
An internal optimized version of copyData designed to work on
Integer packed data with a SinglePixelPackedSampleModel.
|
static void |
copyData(java.awt.image.BufferedImage src,
java.awt.image.BufferedImage dst)
Copies data from one bufferedImage to another paying attention
to the state of AlphaPreMultiplied.
|
static void |
copyData(java.awt.image.BufferedImage src,
java.awt.Rectangle srcRect,
java.awt.image.BufferedImage dst,
java.awt.Point destP)
Copies data from one bufferedImage to another paying attention
to the state of AlphaPreMultiplied.
|
static void |
copyData(java.awt.image.Raster src,
java.awt.image.WritableRaster dst)
Copies data from one raster to another.
|
static java.awt.image.WritableRaster |
copyRaster(java.awt.image.Raster ras)
Creates a new raster that has a copy of the data in
ras . |
static java.awt.image.WritableRaster |
copyRaster(java.awt.image.Raster ras,
int minX,
int minY)
Creates a new raster that has a copy of the data in
ras . |
static java.awt.Graphics2D |
createGraphics(java.awt.image.BufferedImage bi) |
static java.awt.Graphics2D |
createGraphics(java.awt.image.BufferedImage bi,
java.awt.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 |
divide_BYTE_COMP_Data(java.awt.image.WritableRaster wr) |
protected static void |
divide_INT_PACK_Data(java.awt.image.WritableRaster wr) |
static void |
divideAlpha(java.awt.image.WritableRaster wr) |
static void |
drawImage(java.awt.Graphics2D g2d,
CachableRed cr)
Draws
cr into g2d . |
static void |
drawImage(java.awt.Graphics2D g2d,
java.awt.image.renderable.RenderableImage filter)
Draws a
Filter (RenderableImage ) into a
Graphics 2D. |
static void |
drawImage(java.awt.Graphics2D g2d,
java.awt.image.renderable.RenderableImage filter,
java.awt.image.renderable.RenderContext rc)
Draws a
Filter (RenderableImage ) into a
Graphics 2D after taking into account a particular
RenderContext . |
static void |
drawImage(java.awt.Graphics2D g2d,
java.awt.image.RenderedImage ri)
Draws
ri into g2d . |
static java.awt.image.BufferedImage |
getDestination(java.awt.Graphics2D g2d) |
static java.awt.Rectangle |
getDestinationBounds(java.awt.Graphics2D g2d) |
static java.awt.image.ColorModel |
getDestinationColorModel(java.awt.Graphics2D g2d) |
static java.awt.color.ColorSpace |
getDestinationColorSpace(java.awt.Graphics2D g2d) |
static boolean |
is_BYTE_COMP_Data(java.awt.image.SampleModel sm) |
static boolean |
is_INT_PACK_Data(java.awt.image.SampleModel sm,
boolean requireAlpha) |
static java.awt.image.ColorModel |
makeLinear_sRGBCM(boolean premult)
Method that returns either Linear_sRGB_Pre or Linear_sRGB_UnPre
based on premult flag.
|
static java.awt.image.BufferedImage |
makeLinearBufferedImage(int width,
int height,
boolean premult)
Constructs a BufferedImage with a linear sRGB colorModel, and alpha.
|
static java.awt.image.WritableRaster |
makeRasterWritable(java.awt.image.Raster ras)
Coerces
ras to be writable. |
static java.awt.image.WritableRaster |
makeRasterWritable(java.awt.image.Raster ras,
int minX,
int minY)
Coerces
ras to be writable. |
protected static void |
mult_BYTE_COMP_Data(java.awt.image.WritableRaster wr) |
protected static void |
mult_INT_PACK_Data(java.awt.image.WritableRaster wr) |
static void |
multiplyAlpha(java.awt.image.WritableRaster wr) |
static CachableRed |
wrap(java.awt.image.RenderedImage ri)
Convertes any RenderedImage to a CacheableRed.
|
public static java.awt.geom.AffineTransform IDENTITY
public static final boolean WARN_DESTINATION
public static final java.awt.image.ColorModel Linear_sRGB
public static final java.awt.image.ColorModel Linear_sRGB_Pre
public static final java.awt.image.ColorModel Linear_sRGB_Unpre
public static final java.awt.image.ColorModel sRGB
public static final java.awt.image.ColorModel sRGB_Pre
public static final java.awt.image.ColorModel sRGB_Unpre
public static void drawImage(java.awt.Graphics2D g2d, java.awt.image.RenderedImage ri)
ri
into g2d
. It does this be
requesting tiles from ri
and drawing them individually
in g2d
it also takes care of some colorspace and alpha
issues.g2d
- The Graphics2D to draw into.ri
- The image to be drawn.public static void drawImage(java.awt.Graphics2D g2d, CachableRed cr)
cr
into g2d
. It does this be
requesting tiles from ri
and drawing them individually
in g2d
it also takes care of some colorspace and alpha
issues.g2d
- The Graphics2D to draw into.cr
- The image to be drawn.public static void drawImage(java.awt.Graphics2D g2d, java.awt.image.renderable.RenderableImage filter, java.awt.image.renderable.RenderContext rc)
Filter
(RenderableImage
) into a
Graphics 2D after taking into account a particular
RenderContext
.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.
g2d
- The Graphics to draw into.filter
- The filter to drawrc
- The render context that controls the drawing operation.public static void drawImage(java.awt.Graphics2D g2d, java.awt.image.renderable.RenderableImage filter)
Filter
(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.
g2d
- The Graphics to draw into.filter
- The filter to drawpublic static java.awt.Graphics2D createGraphics(java.awt.image.BufferedImage bi, java.awt.RenderingHints hints)
bi
- The BufferedImage that the returned Graphics should
draw into.bi
stored in a rendering hint.public static java.awt.Graphics2D createGraphics(java.awt.image.BufferedImage bi)
public static java.awt.image.BufferedImage getDestination(java.awt.Graphics2D g2d)
public static java.awt.image.ColorModel getDestinationColorModel(java.awt.Graphics2D g2d)
public static java.awt.color.ColorSpace getDestinationColorSpace(java.awt.Graphics2D g2d)
public static java.awt.Rectangle getDestinationBounds(java.awt.Graphics2D g2d)
public static java.awt.image.ColorModel makeLinear_sRGBCM(boolean premult)
premult
- True if the ColorModel should have premultiplied alpha.premult
public static java.awt.image.BufferedImage makeLinearBufferedImage(int width, int height, boolean premult)
width
- The desired width of the BufferedImageheight
- The desired height of the BufferedImagepremult
- The desired state of alpha premultipliedpublic static CachableRed convertToLsRGB(CachableRed src)
src
is already in
linear sRGB then this method does nothing and returns src
.
Otherwise it creates a transform that will convert
src
's output to linear sRGB and returns that CacheableRed.src
- The image to convert to linear sRGB.src
who's data is in
linear sRGB.public static CachableRed convertTosRGB(CachableRed src)
src
is already in
sRGB then this method does nothing and returns src
.
Otherwise it creates a transform that will convert
src
's output to sRGB and returns that CacheableRed.src
- The image to convert to sRGB.src
who's data is in sRGB.public static CachableRed wrap(java.awt.image.RenderedImage ri)
If ri
is already a CacheableRed it casts it down and
returns it.
In cases where ri
is not already a CacheableRed it
wraps ri
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.
ri
- The RenderedImage to convert.public static void copyData_INT_PACK(java.awt.image.Raster src, java.awt.image.WritableRaster dst)
src
- The source of the datadst
- The destination for the data.public static void copyData_FALLBACK(java.awt.image.Raster src, java.awt.image.WritableRaster dst)
public static void copyData(java.awt.image.Raster src, java.awt.image.WritableRaster dst)
Src
and
Dst
must have compatible SampleModels.src
- The source of the datadst
- The destination for the data.public static java.awt.image.WritableRaster copyRaster(java.awt.image.Raster ras)
ras
. 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 a
getData
call).ras
- The Raster to copy.ras
public static java.awt.image.WritableRaster copyRaster(java.awt.image.Raster ras, int minX, int minY)
ras
. 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 a
getData
call).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.ras
public static java.awt.image.WritableRaster makeRasterWritable(java.awt.image.Raster ras)
ras
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).
ras
- The raster to make writable.ras
).public static java.awt.image.WritableRaster makeRasterWritable(java.awt.image.Raster ras, int minX, int minY)
ras
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).
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.ras
with it's upper left
hand coordinate set to minX, minY (shares it's DataBuffer
with ras
).public static java.awt.image.ColorModel coerceColorModel(java.awt.image.ColorModel cm, boolean newAlphaPreMult)
cm
- The ColorModel to change the alpha premult state of.newAlphaPreMult
- The new state of alpha premult.public static java.awt.image.ColorModel coerceData(java.awt.image.WritableRaster wr, java.awt.image.ColorModel cm, boolean newAlphaPreMult)
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.public static void multiplyAlpha(java.awt.image.WritableRaster wr)
public static void divideAlpha(java.awt.image.WritableRaster wr)
public static void copyData(java.awt.image.BufferedImage src, java.awt.image.BufferedImage dst)
src
- The sourcedst
- The destinationpublic static void copyData(java.awt.image.BufferedImage src, java.awt.Rectangle srcRect, java.awt.image.BufferedImage dst, java.awt.Point destP)
src
- The sourcesrcRect
- The Rectangle of source data to be copieddst
- The destinationdestP
- The Place for the upper left corner of srcRect in dst.public static void copyBand(java.awt.image.Raster src, int srcBand, java.awt.image.WritableRaster dst, int dstBand)
public static void copyBand(java.awt.image.Raster src, java.awt.Rectangle sR, int sBand, java.awt.image.WritableRaster dst, java.awt.Rectangle dR, int dBand)
public static boolean is_INT_PACK_Data(java.awt.image.SampleModel sm, boolean requireAlpha)
public static boolean is_BYTE_COMP_Data(java.awt.image.SampleModel sm)
protected static void divide_INT_PACK_Data(java.awt.image.WritableRaster wr)
protected static void mult_INT_PACK_Data(java.awt.image.WritableRaster wr)
protected static void divide_BYTE_COMP_Data(java.awt.image.WritableRaster wr)
protected static void mult_BYTE_COMP_Data(java.awt.image.WritableRaster wr)
Copyright © 2022 Apache Software Foundation. All Rights Reserved.