Class PNGRed
- java.lang.Object
-
- org.apache.xmlgraphics.image.rendered.AbstractRed
-
- org.apache.xmlgraphics.image.codec.png.PNGRed
-
- All Implemented Interfaces:
java.awt.image.RenderedImage
,CachableRed
public class PNGRed extends AbstractRed
- Version:
- $Id$
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
PNGRed.PNGChunk
-
Field Summary
Fields Modifier and Type Field Description private byte[]
alphaPalette
private int[][]
bandOffsets
private int
bitDepth
private int
bkgdBlue
private int
bkgdGreen
private int
bkgdRed
private byte[]
bluePalette
private int
blueTransparentAlpha
private java.awt.Rectangle
bounds
private int
bytesPerPixel
private float[]
chromaticity
private int
chunkIndex
private static java.awt.image.ComponentColorModel
colorModelGray16
private static java.awt.image.ComponentColorModel
colorModelGray32
private static java.awt.image.ComponentColorModel
colorModelGray8
private static java.awt.image.ComponentColorModel
colorModelGrayAlpha16
private static java.awt.image.ComponentColorModel
colorModelGrayAlpha32
private static java.awt.image.ComponentColorModel
colorModelGrayAlpha8
private static java.awt.image.ComponentColorModel
colorModelRGB16
private static java.awt.image.ComponentColorModel
colorModelRGB32
private static java.awt.image.ComponentColorModel
colorModelRGB8
private static java.awt.image.ComponentColorModel
colorModelRGBA16
private static java.awt.image.ComponentColorModel
colorModelRGBA32
private static java.awt.image.ComponentColorModel
colorModelRGBA8
private int
colorType
private static java.lang.String[]
colorTypeNames
private int
compressionMethod
private java.io.DataInputStream
dataStream
private PNGDecodeParam
decodeParam
private float
displayExponent
private boolean
emitProperties
private PNGEncodeParam
encodeParam
private byte[][]
expandBits
private boolean
expandGrayAlpha
private boolean
expandPalette
private float
fileGamma
private int
filterMethod
private int[]
gammaLut
private boolean
generateEncodeParam
private static int[]
GrayAlphaBits16
private static int[]
GrayAlphaBits32
private static int[]
GrayAlphaBits8
private static int[]
GrayBits16
private static int[]
GrayBits32
private static int[]
GrayBits8
private int[]
grayLut
private int
grayTransparentAlpha
private byte[]
greenPalette
private int
greenTransparentAlpha
private int
inputBands
private int
interlaceMethod
private int
maxOpacity
private boolean
output8BitGray
private int
outputBands
private boolean
outputHasAlphaPalette
private int
paletteEntries
private boolean
performGammaCorrection
static int
PNG_COLOR_GRAY
static int
PNG_COLOR_GRAY_ALPHA
static int
PNG_COLOR_PALETTE
static int
PNG_COLOR_RGB
static int
PNG_COLOR_RGB_ALPHA
static int
PNG_FILTER_AVERAGE
static int
PNG_FILTER_NONE
static int
PNG_FILTER_PAETH
static int
PNG_FILTER_SUB
static int
PNG_FILTER_UP
private static int
POST_ADD_GRAY_TRANS
private static int
POST_ADD_GRAY_TRANS_EXP
private static int
POST_ADD_RGB_TRANS
private static int
POST_EXP_MASK
private static int
POST_GAMMA
private static int
POST_GAMMA_EXP
private static int
POST_GRAY_ALPHA_EXP
private static int
POST_GRAY_LUT
private static int
POST_GRAY_LUT_ADD_TRANS
private static int
POST_GRAY_LUT_ADD_TRANS_EXP
private static int
POST_NONE
private static int
POST_PALETTE_TO_RGB
private static int
POST_PALETTE_TO_RGBA
private static int
POST_REMOVE_GRAY_TRANS
private static int
POST_REMOVE_RGB_TRANS
private int
postProcess
private java.util.Map<java.lang.String,java.lang.Object>
properties
A Hashtable containing the image properties.private byte[]
redPalette
private int
redTransparentAlpha
private static int[]
RGBABits16
private static int[]
RGBABits32
private static int[]
RGBABits8
private static int[]
RGBBits16
private static int[]
RGBBits32
private static int[]
RGBBits8
private int[]
significantBits
private int
sRGBRenderingIntent
private java.util.List<java.io.InputStream>
streamVec
private boolean
suppressAlpha
private java.util.List
textKeys
private java.util.List
textStrings
private java.awt.image.WritableRaster
theTile
private float
userExponent
private java.util.List
ztextKeys
private java.util.List
ztextStrings
-
Fields inherited from class org.apache.xmlgraphics.image.rendered.AbstractRed
cm, minTileX, minTileY, numXTiles, numYTiles, props, sm, srcs, tileGridXOff, tileGridYOff, tileHeight, tileWidth
-
-
Constructor Summary
Constructors Constructor Description PNGRed(java.io.InputStream stream)
PNGRed(java.io.InputStream stream, PNGDecodeParam decodeParam)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.image.WritableRaster
copyData(java.awt.image.WritableRaster wr)
static java.awt.image.ColorModel
createComponentColorModel(java.awt.image.SampleModel sm)
A convenience method to create an instance ofComponentColorModel
suitable for use with the givenSampleModel
.private java.awt.image.WritableRaster
createRaster(int width, int height, int bands, int scanlineStride, int bitDepth)
private static void
decodeAverageFilter(byte[] curr, byte[] prev, int count, int bpp)
private void
decodeImage(boolean useInterlacing)
private static void
decodePaethFilter(byte[] curr, byte[] prev, int count, int bpp)
private void
decodePass(java.awt.image.WritableRaster imRas, int xOffset, int yOffset, int xStep, int yStep, int passWidth, int passHeight)
Reads in an image of a given size and returns it as a WritableRaster.private static void
decodeSubFilter(byte[] curr, int count, int bpp)
private static void
decodeUpFilter(byte[] curr, byte[] prev, int count)
private static java.lang.String
getChunkType(java.io.DataInputStream distream)
java.awt.image.Raster
getTile(int tileX, int tileY)
private void
initGammaLut(int bits)
private void
initGrayLut(int bits)
private static int
paethPredictor(int a, int b, int c)
private void
parse_bKGD_chunk(PNGRed.PNGChunk chunk)
private void
parse_cHRM_chunk(PNGRed.PNGChunk chunk)
private void
parse_gAMA_chunk(PNGRed.PNGChunk chunk)
private void
parse_hIST_chunk(PNGRed.PNGChunk chunk)
private void
parse_IEND_chunk(PNGRed.PNGChunk chunk)
private void
parse_IHDR_chunk(PNGRed.PNGChunk chunk)
private void
parse_pHYs_chunk(PNGRed.PNGChunk chunk)
private void
parse_PLTE_chunk(PNGRed.PNGChunk chunk)
private void
parse_sBIT_chunk(PNGRed.PNGChunk chunk)
private void
parse_sRGB_chunk(PNGRed.PNGChunk chunk)
private void
parse_tEXt_chunk(PNGRed.PNGChunk chunk)
private void
parse_tIME_chunk(PNGRed.PNGChunk chunk)
private void
parse_tRNS_chunk(PNGRed.PNGChunk chunk)
private void
parse_zTXt_chunk(PNGRed.PNGChunk chunk)
private void
processPixels(int process, java.awt.image.Raster src, java.awt.image.WritableRaster dst, int xOffset, int step, int y, int width)
private static PNGRed.PNGChunk
readChunk(java.io.DataInputStream distream)
-
Methods inherited from class org.apache.xmlgraphics.image.rendered.AbstractRed
copyBand, copyToRaster, getBounds, getColorModel, getData, getData, getDependencyRegion, getDirtyRegion, getHeight, getMinTileX, getMinTileY, getMinX, getMinY, getNumXTiles, getNumYTiles, getProperty, getPropertyNames, getSampleModel, getSources, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getWidth, getXTile, getYTile, init, init, makeTile, updateTileGridInfo
-
-
-
-
Field Detail
-
PNG_COLOR_GRAY
public static final int PNG_COLOR_GRAY
- See Also:
- Constant Field Values
-
PNG_COLOR_RGB
public static final int PNG_COLOR_RGB
- See Also:
- Constant Field Values
-
PNG_COLOR_PALETTE
public static final int PNG_COLOR_PALETTE
- See Also:
- Constant Field Values
-
PNG_COLOR_GRAY_ALPHA
public static final int PNG_COLOR_GRAY_ALPHA
- See Also:
- Constant Field Values
-
PNG_COLOR_RGB_ALPHA
public static final int PNG_COLOR_RGB_ALPHA
- See Also:
- Constant Field Values
-
colorTypeNames
private static final java.lang.String[] colorTypeNames
-
PNG_FILTER_NONE
public static final int PNG_FILTER_NONE
- See Also:
- Constant Field Values
-
PNG_FILTER_SUB
public static final int PNG_FILTER_SUB
- See Also:
- Constant Field Values
-
PNG_FILTER_UP
public static final int PNG_FILTER_UP
- See Also:
- Constant Field Values
-
PNG_FILTER_AVERAGE
public static final int PNG_FILTER_AVERAGE
- See Also:
- Constant Field Values
-
PNG_FILTER_PAETH
public static final int PNG_FILTER_PAETH
- See Also:
- Constant Field Values
-
bandOffsets
private int[][] bandOffsets
-
bitDepth
private int bitDepth
-
colorType
private int colorType
-
compressionMethod
private int compressionMethod
-
filterMethod
private int filterMethod
-
interlaceMethod
private int interlaceMethod
-
paletteEntries
private int paletteEntries
-
redPalette
private byte[] redPalette
-
greenPalette
private byte[] greenPalette
-
bluePalette
private byte[] bluePalette
-
alphaPalette
private byte[] alphaPalette
-
bkgdRed
private int bkgdRed
-
bkgdGreen
private int bkgdGreen
-
bkgdBlue
private int bkgdBlue
-
grayTransparentAlpha
private int grayTransparentAlpha
-
redTransparentAlpha
private int redTransparentAlpha
-
greenTransparentAlpha
private int greenTransparentAlpha
-
blueTransparentAlpha
private int blueTransparentAlpha
-
maxOpacity
private int maxOpacity
-
significantBits
private int[] significantBits
-
suppressAlpha
private boolean suppressAlpha
-
expandPalette
private boolean expandPalette
-
output8BitGray
private boolean output8BitGray
-
outputHasAlphaPalette
private boolean outputHasAlphaPalette
-
performGammaCorrection
private boolean performGammaCorrection
-
expandGrayAlpha
private boolean expandGrayAlpha
-
generateEncodeParam
private boolean generateEncodeParam
-
decodeParam
private PNGDecodeParam decodeParam
-
encodeParam
private PNGEncodeParam encodeParam
-
emitProperties
private boolean emitProperties
-
fileGamma
private float fileGamma
-
userExponent
private float userExponent
-
displayExponent
private float displayExponent
-
chromaticity
private float[] chromaticity
-
sRGBRenderingIntent
private int sRGBRenderingIntent
-
postProcess
private int postProcess
-
POST_NONE
private static final int POST_NONE
- See Also:
- Constant Field Values
-
POST_GAMMA
private static final int POST_GAMMA
- See Also:
- Constant Field Values
-
POST_GRAY_LUT
private static final int POST_GRAY_LUT
- See Also:
- Constant Field Values
-
POST_GRAY_LUT_ADD_TRANS
private static final int POST_GRAY_LUT_ADD_TRANS
- See Also:
- Constant Field Values
-
POST_PALETTE_TO_RGB
private static final int POST_PALETTE_TO_RGB
- See Also:
- Constant Field Values
-
POST_PALETTE_TO_RGBA
private static final int POST_PALETTE_TO_RGBA
- See Also:
- Constant Field Values
-
POST_ADD_GRAY_TRANS
private static final int POST_ADD_GRAY_TRANS
- See Also:
- Constant Field Values
-
POST_ADD_RGB_TRANS
private static final int POST_ADD_RGB_TRANS
- See Also:
- Constant Field Values
-
POST_REMOVE_GRAY_TRANS
private static final int POST_REMOVE_GRAY_TRANS
- See Also:
- Constant Field Values
-
POST_REMOVE_RGB_TRANS
private static final int POST_REMOVE_RGB_TRANS
- See Also:
- Constant Field Values
-
POST_EXP_MASK
private static final int POST_EXP_MASK
- See Also:
- Constant Field Values
-
POST_GRAY_ALPHA_EXP
private static final int POST_GRAY_ALPHA_EXP
- See Also:
- Constant Field Values
-
POST_GAMMA_EXP
private static final int POST_GAMMA_EXP
- See Also:
- Constant Field Values
-
POST_GRAY_LUT_ADD_TRANS_EXP
private static final int POST_GRAY_LUT_ADD_TRANS_EXP
- See Also:
- Constant Field Values
-
POST_ADD_GRAY_TRANS_EXP
private static final int POST_ADD_GRAY_TRANS_EXP
- See Also:
- Constant Field Values
-
streamVec
private java.util.List<java.io.InputStream> streamVec
-
dataStream
private java.io.DataInputStream dataStream
-
bytesPerPixel
private int bytesPerPixel
-
inputBands
private int inputBands
-
outputBands
private int outputBands
-
chunkIndex
private int chunkIndex
-
textKeys
private java.util.List textKeys
-
textStrings
private java.util.List textStrings
-
ztextKeys
private java.util.List ztextKeys
-
ztextStrings
private java.util.List ztextStrings
-
theTile
private java.awt.image.WritableRaster theTile
-
bounds
private java.awt.Rectangle bounds
-
properties
private java.util.Map<java.lang.String,java.lang.Object> properties
A Hashtable containing the image properties.
-
gammaLut
private int[] gammaLut
-
expandBits
private final byte[][] expandBits
-
grayLut
private int[] grayLut
-
GrayBits8
private static final int[] GrayBits8
-
colorModelGray8
private static final java.awt.image.ComponentColorModel colorModelGray8
-
GrayAlphaBits8
private static final int[] GrayAlphaBits8
-
colorModelGrayAlpha8
private static final java.awt.image.ComponentColorModel colorModelGrayAlpha8
-
GrayBits16
private static final int[] GrayBits16
-
colorModelGray16
private static final java.awt.image.ComponentColorModel colorModelGray16
-
GrayAlphaBits16
private static final int[] GrayAlphaBits16
-
colorModelGrayAlpha16
private static final java.awt.image.ComponentColorModel colorModelGrayAlpha16
-
GrayBits32
private static final int[] GrayBits32
-
colorModelGray32
private static final java.awt.image.ComponentColorModel colorModelGray32
-
GrayAlphaBits32
private static final int[] GrayAlphaBits32
-
colorModelGrayAlpha32
private static final java.awt.image.ComponentColorModel colorModelGrayAlpha32
-
RGBBits8
private static final int[] RGBBits8
-
colorModelRGB8
private static final java.awt.image.ComponentColorModel colorModelRGB8
-
RGBABits8
private static final int[] RGBABits8
-
colorModelRGBA8
private static final java.awt.image.ComponentColorModel colorModelRGBA8
-
RGBBits16
private static final int[] RGBBits16
-
colorModelRGB16
private static final java.awt.image.ComponentColorModel colorModelRGB16
-
RGBABits16
private static final int[] RGBABits16
-
colorModelRGBA16
private static final java.awt.image.ComponentColorModel colorModelRGBA16
-
RGBBits32
private static final int[] RGBBits32
-
colorModelRGB32
private static final java.awt.image.ComponentColorModel colorModelRGB32
-
RGBABits32
private static final int[] RGBABits32
-
colorModelRGBA32
private static final java.awt.image.ComponentColorModel colorModelRGBA32
-
-
Constructor Detail
-
PNGRed
public PNGRed(java.io.InputStream stream) throws java.io.IOException
- Throws:
java.io.IOException
-
PNGRed
public PNGRed(java.io.InputStream stream, PNGDecodeParam decodeParam) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
initGammaLut
private void initGammaLut(int bits)
-
initGrayLut
private void initGrayLut(int bits)
-
getChunkType
private static java.lang.String getChunkType(java.io.DataInputStream distream)
-
readChunk
private static PNGRed.PNGChunk readChunk(java.io.DataInputStream distream)
-
parse_IHDR_chunk
private void parse_IHDR_chunk(PNGRed.PNGChunk chunk)
-
parse_IEND_chunk
private void parse_IEND_chunk(PNGRed.PNGChunk chunk) throws java.lang.Exception
- Throws:
java.lang.Exception
-
createComponentColorModel
public static java.awt.image.ColorModel createComponentColorModel(java.awt.image.SampleModel sm)
A convenience method to create an instance ofComponentColorModel
suitable for use with the givenSampleModel
. TheSampleModel
should have a data type ofDataBuffer.TYPE_BYTE
,TYPE_USHORT
, orTYPE_INT
and between 1 and 4 bands. Depending on the number of bands of theSampleModel
, either a gray, gray+alpha, rgb, or rgb+alphaColorModel
is returned.
-
parse_PLTE_chunk
private void parse_PLTE_chunk(PNGRed.PNGChunk chunk)
-
parse_bKGD_chunk
private void parse_bKGD_chunk(PNGRed.PNGChunk chunk)
-
parse_cHRM_chunk
private void parse_cHRM_chunk(PNGRed.PNGChunk chunk)
-
parse_gAMA_chunk
private void parse_gAMA_chunk(PNGRed.PNGChunk chunk)
-
parse_hIST_chunk
private void parse_hIST_chunk(PNGRed.PNGChunk chunk)
-
parse_pHYs_chunk
private void parse_pHYs_chunk(PNGRed.PNGChunk chunk)
-
parse_sBIT_chunk
private void parse_sBIT_chunk(PNGRed.PNGChunk chunk)
-
parse_sRGB_chunk
private void parse_sRGB_chunk(PNGRed.PNGChunk chunk)
-
parse_tEXt_chunk
private void parse_tEXt_chunk(PNGRed.PNGChunk chunk)
-
parse_tIME_chunk
private void parse_tIME_chunk(PNGRed.PNGChunk chunk)
-
parse_tRNS_chunk
private void parse_tRNS_chunk(PNGRed.PNGChunk chunk)
-
parse_zTXt_chunk
private void parse_zTXt_chunk(PNGRed.PNGChunk chunk)
-
createRaster
private java.awt.image.WritableRaster createRaster(int width, int height, int bands, int scanlineStride, int bitDepth)
-
decodeSubFilter
private static void decodeSubFilter(byte[] curr, int count, int bpp)
-
decodeUpFilter
private static void decodeUpFilter(byte[] curr, byte[] prev, int count)
-
decodeAverageFilter
private static void decodeAverageFilter(byte[] curr, byte[] prev, int count, int bpp)
-
paethPredictor
private static int paethPredictor(int a, int b, int c)
-
decodePaethFilter
private static void decodePaethFilter(byte[] curr, byte[] prev, int count, int bpp)
-
processPixels
private void processPixels(int process, java.awt.image.Raster src, java.awt.image.WritableRaster dst, int xOffset, int step, int y, int width)
-
decodePass
private void decodePass(java.awt.image.WritableRaster imRas, int xOffset, int yOffset, int xStep, int yStep, int passWidth, int passHeight)
Reads in an image of a given size and returns it as a WritableRaster.
-
decodeImage
private void decodeImage(boolean useInterlacing)
-
copyData
public java.awt.image.WritableRaster copyData(java.awt.image.WritableRaster wr)
-
getTile
public java.awt.image.Raster getTile(int tileX, int tileY)
- Specified by:
getTile
in interfacejava.awt.image.RenderedImage
- Overrides:
getTile
in classAbstractRed
-
-