erkka
Class PngEncoderB

java.lang.Object
  |
  +--erkka.PngEncoder
        |
        +--erkka.PngEncoderB

public class PngEncoderB
extends PngEncoder


Field Summary
protected  java.awt.image.BufferedImage image
           
protected  int tType
           
protected  java.awt.image.WritableRaster wRaster
           
 
Fields inherited from class erkka.PngEncoder
bytePos, bytesPerPixel, compressionLevel, crc, crcValue, dataPos, ENCODE_ALPHA, encodeAlpha, endPos, filter, FILTER_LAST, FILTER_NONE, FILTER_SUB, FILTER_UP, hdrPos, height, leftBytes, maxPos, NO_ALPHA, pngBytes, priorRow, width
 
Constructor Summary
PngEncoderB()
          Class constructor
PngEncoderB(java.awt.image.BufferedImage image)
          Class constructor specifying BufferedImage to encode, with no alpha channel encoding.
PngEncoderB(java.awt.image.BufferedImage image, boolean encodeAlpha)
          Class constructor specifying BufferedImage to encode, and whether to encode alpha.
PngEncoderB(java.awt.image.BufferedImage image, boolean encodeAlpha, int whichFilter)
          Class constructor specifying BufferedImage to encode, whether to encode alpha, and filter to use.
PngEncoderB(java.awt.image.BufferedImage image, boolean encodeAlpha, int whichFilter, int compLevel)
          Class constructor specifying BufferedImage source to encode, whether to encode alpha, filter to use, and compression level
 
Method Summary
protected  boolean establishStorageInfo()
          Get and set variables that determine how picture is stored.
 byte[] pngEncode()
          Creates an array of bytes that is the PNG equivalent of the current image.
 byte[] pngEncode(boolean encodeAlpha)
          Creates an array of bytes that is the PNG equivalent of the current image, specifying whether to encode alpha or not.
 void setImage(java.awt.image.BufferedImage image)
          Set the BufferedImage to be encoded
protected  void writeHeader()
          Write a PNG "IHDR" chunk into the pngBytes array.
protected  boolean writeImageData()
          Write the image data into the pngBytes array.
protected  void writePalette(java.awt.image.IndexColorModel icm)
           
 
Methods inherited from class erkka.PngEncoder
filterSub, filterUp, getCompressionLevel, getEncodeAlpha, getFilter, resizeByteArray, setCompressionLevel, setEncodeAlpha, setFilter, setImage, writeByte, writeBytes, writeBytes, writeEnd, writeInt2, writeInt4, writeString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

image

protected java.awt.image.BufferedImage image

wRaster

protected java.awt.image.WritableRaster wRaster

tType

protected int tType
Constructor Detail

PngEncoderB

public PngEncoderB()
Class constructor


PngEncoderB

public PngEncoderB(java.awt.image.BufferedImage image)
Class constructor specifying BufferedImage to encode, with no alpha channel encoding.

Parameters:
image - A Java BufferedImage object

PngEncoderB

public PngEncoderB(java.awt.image.BufferedImage image,
                   boolean encodeAlpha)
Class constructor specifying BufferedImage to encode, and whether to encode alpha.

Parameters:
image - A Java BufferedImage object
encodeAlpha - Encode the alpha channel? false=no; true=yes

PngEncoderB

public PngEncoderB(java.awt.image.BufferedImage image,
                   boolean encodeAlpha,
                   int whichFilter)
Class constructor specifying BufferedImage to encode, whether to encode alpha, and filter to use.

Parameters:
image - A Java BufferedImage object
encodeAlpha - Encode the alpha channel? false=no; true=yes
whichFilter - 0=none, 1=sub, 2=up

PngEncoderB

public PngEncoderB(java.awt.image.BufferedImage image,
                   boolean encodeAlpha,
                   int whichFilter,
                   int compLevel)
Class constructor specifying BufferedImage source to encode, whether to encode alpha, filter to use, and compression level

Parameters:
image - A Java BufferedImage object
encodeAlpha - Encode the alpha channel? false=no; true=yes
whichFilter - 0=none, 1=sub, 2=up
compLevel - 0..9
Method Detail

setImage

public void setImage(java.awt.image.BufferedImage image)
Set the BufferedImage to be encoded


pngEncode

public byte[] pngEncode(boolean encodeAlpha)
Creates an array of bytes that is the PNG equivalent of the current image, specifying whether to encode alpha or not.

Overrides:
pngEncode in class PngEncoder
Parameters:
encodeAlpha - boolean false=no alpha, true=encode alpha
Returns:
an array of bytes, or null if there was a problem

pngEncode

public byte[] pngEncode()
Creates an array of bytes that is the PNG equivalent of the current image. Alpha encoding is determined by its setting in the constructor.

Overrides:
pngEncode in class PngEncoder
Returns:
an array of bytes, or null if there was a problem

establishStorageInfo

protected boolean establishStorageInfo()
Get and set variables that determine how picture is stored. Retrieves the writable raster of the buffered image, as well its transfer type. Sets number of output bytes per pixel, and, if only eight-bit bytes, turns off alpha encoding.

Returns:
true if 1-byte or 4-byte data, false otherwise

writeHeader

protected void writeHeader()
Write a PNG "IHDR" chunk into the pngBytes array.

Overrides:
writeHeader in class PngEncoder

writePalette

protected void writePalette(java.awt.image.IndexColorModel icm)

writeImageData

protected boolean writeImageData()
Write the image data into the pngBytes array. This will write one or more PNG "IDAT" chunks. In order to conserve memory, this method grabs as many rows as will fit into 32K bytes, or the whole image; whichever is less.

Overrides:
writeImageData in class PngEncoder
Returns:
true if no errors; false if error grabbing pixels