Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| xmlgraphics-commons 1.5
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.xmlgraphics.image
Class GraphicsUtil

    java.lang.Object
      org.apache.xmlgraphics.image.GraphicsUtil

    public final class GraphicsUtil

extends Object

Set of utility methods for Graphics. These generally bypass broken methods in Java2D or provide tweaked implementations.

Version:
  $Id: GraphicsUtil.java 1345683 2012-06-03 14:50:33Z gadams $ Originally authored by Thomas DeWeese.

Field Summary
`static AffineTransform` | `IDENTITY`
`static ColorModel` | `Linear_sRGB` Standard prebuilt Linear_sRGB color model with no alpha
`static ColorModel` | `Linear_sRGB_Pre` Standard prebuilt Linear_sRGB color model with premultiplied alpha.
`static ColorModel` | `Linear_sRGB_Unpre` Standard prebuilt Linear_sRGB color model with unpremultiplied alpha.
`static ColorModel` | `sRGB` Standard prebuilt sRGB color model with no alpha.
`static ColorModel` | `sRGB_Pre` Standard prebuilt sRGB color model with premultiplied alpha.
`static ColorModel` | `sRGB_Unpre` Standard prebuilt sRGB color model with unpremultiplied alpha.

Method Summary
`static 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 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(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_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 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 WritableRaster` | `copyRaster(Raster ras)` Creates a new raster that has a copy of the data in `ras`.
`static WritableRaster` | `copyRaster(Raster ras, int minX, int minY)` Creates a new raster that has a copy of the data in `ras`.
`protected static void` | `divide_BYTE_COMP_Data(WritableRaster wr)`
`protected static void` | `divide_INT_PACK_Data(WritableRaster wr)`
`static void` | `divideAlpha(WritableRaster wr)`
`static Raster` | `getAlphaRaster(RenderedImage image)` Extracts an alpha raster from a RenderedImage.
`static boolean` | `is_BYTE_COMP_Data(SampleModel sm)`
`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)` Coerces `ras` to be writable.
`static WritableRaster` | `makeRasterWritable(Raster ras, int minX, int minY)` Coerces `ras` to be writable.
`protected static void` | `mult_BYTE_COMP_Data(WritableRaster wr)`
`protected static void` | `mult_INT_PACK_Data(WritableRaster wr)`
`static void` | `multiplyAlpha(WritableRaster wr)`
`static CachableRed` | `wrap(RenderedImage ri)` Convertes any RenderedImage to a CacheableRed.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### IDENTITY

    public static AffineTransform IDENTITY

### Linear_sRGB

    public static final ColorModel Linear_sRGB

  Standard prebuilt Linear_sRGB color model with no alpha

### Linear_sRGB_Pre

    public static final ColorModel Linear_sRGB_Pre

  Standard prebuilt Linear_sRGB color model with premultiplied alpha.

### Linear_sRGB_Unpre

    public static final ColorModel Linear_sRGB_Unpre

  Standard prebuilt Linear_sRGB color model with unpremultiplied alpha.

### sRGB

    public static final ColorModel sRGB

  Standard prebuilt sRGB color model with no alpha.

### sRGB_Pre

    public static final ColorModel sRGB_Pre

  Standard prebuilt sRGB color model with premultiplied alpha.

### sRGB_Unpre

    public static final ColorModel sRGB_Unpre

  Standard prebuilt sRGB color model with unpremultiplied alpha.

Method Detail

### makeLinear_sRGBCM

    public static ColorModel makeLinear_sRGBCM(boolean premult)

  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

    public static BufferedImage makeLinearBufferedImage(int width,
                                                        int height,
                                                        boolean premult)

  Constructs a BufferedImage with a linear sRGB colorModel, and alpha.

  Parameters:
    `width` - The desired width of the BufferedImage
    `height` - The desired height of the BufferedImage
    `premult` - The desired state of alpha premultiplied
  Returns:
    The requested BufferedImage.

### convertToLsRGB

    public static CachableRed convertToLsRGB(CachableRed src)

  This method will return a CacheableRed that has it's data in the linear sRGB colorspace. If `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.

  Parameters:
    `src` - The image to convert to linear sRGB.
  Returns:
    An equivilant image to `src` who's data is in linear sRGB.

### convertTosRGB

    public static CachableRed convertTosRGB(CachableRed src)

  This method will return a CacheableRed that has it's data in the sRGB colorspace. If `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.

  Parameters:
    `src` - The image to convert to sRGB.
  Returns:
    An equivilant image to `src` who's data is in sRGB.

### wrap

    public static CachableRed wrap(RenderedImage ri)

  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 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.

  Parameters:
    `ri` - The RenderedImage to convert.
  Returns:
    a CacheableRed that contains the same data as ri.

### copyData_INT_PACK

    public 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. 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 data
    `dst` - The destination for the data.

### copyData_FALLBACK

    public static void copyData_FALLBACK(Raster src,
                                         WritableRaster dst)

### copyData

    public static void copyData(Raster src,
                                WritableRaster dst)

  Copies data from one raster to another. Only the region of overlap between src and dst is copied. `Src` and `Dst` must have compatible SampleModels.

  Parameters:
    `src` - The source of the data
    `dst` - The destination for the data.

### copyRaster

    public static WritableRaster copyRaster(Raster ras)

  Creates a new raster that has a copy of the data in `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).

  Parameters:
    `ras` - The Raster to copy.
  Returns:
    A writable copy of `ras`

### copyRaster

    public static WritableRaster copyRaster(Raster ras,
                                            int minX,
                                            int minY)

  Creates a new raster that has a copy of the data in `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).

  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

    public static WritableRaster makeRasterWritable(Raster ras)

  Coerces `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).

  Parameters:
    `ras` - The raster to make writable.
  Returns:
    A Writable version of ras (shares DataBuffer with `ras`).

### makeRasterWritable

    public static WritableRaster makeRasterWritable(Raster ras,
                                                    int minX,
                                                    int minY)

  Coerces `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).

  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 with `ras`).

### coerceColorModel

    public static ColorModel coerceColorModel(ColorModel cm,
                                              boolean newAlphaPreMult)

  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

    public 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 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

    public static void multiplyAlpha(WritableRaster wr)

### divideAlpha

    public static void divideAlpha(WritableRaster wr)

### copyData

    public static void copyData(BufferedImage src,
                                BufferedImage dst)

  Copies data from one bufferedImage to another paying attention to the state of AlphaPreMultiplied.

  Parameters:
    `src` - The source
    `dst` - The destination

### copyData

    public 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.

  Parameters:
    `src` - The source
    `srcRect` - The Rectangle of source data to be copied
    `dst` - The destination
    `destP` - The Place for the upper left corner of srcRect in dst.

### copyBand

    public static void copyBand(Raster src,
                                int srcBand,
                                WritableRaster dst,
                                int dstBand)

### copyBand

    public static void copyBand(Raster src,
                                Rectangle sR,
                                int sBand,
                                WritableRaster dst,
                                Rectangle dR,
                                int dBand)

### is_INT_PACK_Data

    public static boolean is_INT_PACK_Data(SampleModel sm,
                                           boolean requireAlpha)

### is_BYTE_COMP_Data

    public static boolean is_BYTE_COMP_Data(SampleModel sm)

### divide_INT_PACK_Data

    protected static void divide_INT_PACK_Data(WritableRaster wr)

### mult_INT_PACK_Data

    protected static void mult_INT_PACK_Data(WritableRaster wr)

### divide_BYTE_COMP_Data

    protected static void divide_BYTE_COMP_Data(WritableRaster wr)

### mult_BYTE_COMP_Data

    protected static void mult_BYTE_COMP_Data(WritableRaster wr)

### getAlphaRaster

    public static Raster getAlphaRaster(RenderedImage image)

  Extracts an alpha raster from a RenderedImage. The method tries to avoid copying data unnecessarily by checking if the RenderedImage is a BufferedImage which offers suitable direct methods.

  Parameters:
    `image` - the image
  Returns:
    the alpha raster

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| xmlgraphics-commons 1.5
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 1999-2012 The Apache Software Foundation. All Rights Reserved.