public class PngEncoder
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static boolean |
ENCODE_ALPHA
Constant specifying that alpha channel should be encoded.
|
static int |
FILTER_LAST
Constants for filter (LAST)
|
static int |
FILTER_NONE
Constants for filter (NONE)
|
static int |
FILTER_SUB
Constants for filter (SUB)
|
static int |
FILTER_UP
Constants for filter (UP)
|
static boolean |
NO_ALPHA
Constant specifying that alpha channel should not be encoded.
|
| Constructor and Description |
|---|
PngEncoder()
Class constructor
|
PngEncoder(java.awt.Image image)
Class constructor specifying Image to encode, with no alpha channel encoding.
|
PngEncoder(java.awt.Image image,
boolean encodeAlpha)
Class constructor specifying Image to encode, and whether to encode alpha.
|
PngEncoder(java.awt.Image image,
boolean encodeAlpha,
int whichFilter)
Class constructor specifying Image to encode, whether to encode alpha, and filter to use.
|
PngEncoder(java.awt.Image image,
boolean encodeAlpha,
int whichFilter,
int compLevel)
Class constructor specifying Image source to encode, whether to encode alpha, filter to use,
and compression level.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
filterSub(byte[] pixels,
int startPos,
int width)
Perform "sub" filtering on the given row.
|
protected void |
filterUp(byte[] pixels,
int startPos,
int width)
Perform "up" filtering on the given row.
|
int |
getCompressionLevel()
Retrieve compression level
|
boolean |
getEncodeAlpha()
Retrieve alpha encoding status.
|
int |
getFilter()
Retrieve filtering scheme
|
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.
|
protected byte[] |
resizeByteArray(byte[] array,
int newLength)
Increase or decrease the length of a byte array.
|
void |
setCompressionLevel(int level)
Set the compression level to use
|
void |
setEncodeAlpha(boolean encodeAlpha)
Set the alpha encoding on or off.
|
void |
setFilter(int whichFilter)
Set the filter to use
|
void |
setImage(java.awt.Image image)
Set the image to be encoded
|
protected int |
writeByte(int b,
int offset)
Write a single byte into the pngBytes array at a given position.
|
protected int |
writeBytes(byte[] data,
int offset)
Write an array of bytes into the pngBytes array.
|
protected int |
writeBytes(byte[] data,
int nBytes,
int offset)
Write an array of bytes into the pngBytes array, specifying number of bytes to write.
|
protected void |
writeEnd()
Write a PNG "IEND" chunk into the pngBytes array.
|
protected void |
writeHeader()
Write a PNG "IHDR" chunk into the pngBytes array.
|
protected boolean |
writeImageData()
Write the image data into the pngBytes array.
|
protected int |
writeInt2(int n,
int offset)
Write a two-byte integer into the pngBytes array at a given position.
|
protected int |
writeInt4(int n,
int offset)
Write a four-byte integer into the pngBytes array at a given position.
|
public static final boolean ENCODE_ALPHA
public static final boolean NO_ALPHA
public static final int FILTER_NONE
public static final int FILTER_SUB
public static final int FILTER_UP
public static final int FILTER_LAST
public PngEncoder()
public PngEncoder(java.awt.Image image)
image - A Java Image object which uses the DirectColorModelImagepublic PngEncoder(java.awt.Image image,
boolean encodeAlpha)
image - A Java Image object which uses the DirectColorModelencodeAlpha - Encode the alpha channel? false=no; true=yesImagepublic PngEncoder(java.awt.Image image,
boolean encodeAlpha,
int whichFilter)
image - A Java Image object which uses the DirectColorModelencodeAlpha - Encode the alpha channel? false=no; true=yeswhichFilter - 0=none, 1=sub, 2=upImagepublic PngEncoder(java.awt.Image image,
boolean encodeAlpha,
int whichFilter,
int compLevel)
image - A Java Image objectencodeAlpha - Encode the alpha channel? false=no; true=yeswhichFilter - 0=none, 1=sub, 2=upcompLevel - 0..9 (1 = best speed, 9 = best compression, 0 = no compression)Imagepublic void setImage(java.awt.Image image)
image - A Java Image object which uses the DirectColorModelImage,
DirectColorModelpublic byte[] pngEncode(boolean encodeAlpha)
encodeAlpha - boolean false=no alpha, true=encode alphapublic byte[] pngEncode()
public void setEncodeAlpha(boolean encodeAlpha)
encodeAlpha - false=no, true=yespublic boolean getEncodeAlpha()
public void setFilter(int whichFilter)
whichFilter - from constant listpublic int getFilter()
public void setCompressionLevel(int level)
level - the compression level (1 = best speed, 9 = best compression, 0 = no compression)public int getCompressionLevel()
protected byte[] resizeByteArray(byte[] array,
int newLength)
array - The original array.newLength - The length you wish the new array to have.protected int writeBytes(byte[] data,
int offset)
data - The data to be written into pngBytes.offset - The starting point to write to.protected int writeBytes(byte[] data,
int nBytes,
int offset)
data - The data to be written into pngBytes.nBytes - The number of bytes to be written.offset - The starting point to write to.protected int writeInt2(int n,
int offset)
n - The integer to be written into pngBytes.offset - The starting point to write to.protected int writeInt4(int n,
int offset)
n - The integer to be written into pngBytes.offset - The starting point to write to.protected int writeByte(int b,
int offset)
b - The integer to be written into pngBytes.offset - The starting point to write to.protected void writeHeader()
protected void filterSub(byte[] pixels,
int startPos,
int width)
pixels - The array holding the scan lines being builtstartPos - Starting position within pixels of bytes to be filtered.width - Width of a scanline in pixels.protected void filterUp(byte[] pixels,
int startPos,
int width)
pixels - The array holding the scan lines being builtstartPos - Starting position within pixels of bytes to be filtered.width - Width of a scanline in pixels.protected boolean writeImageData()
protected void writeEnd()