public class DIBCodec extends AbstractVideoCodec
DIBCodec
encodes a BufferedImage as a Microsoft Device Independent
Bitmap (DIB) into a byte array.
The DIB codec only works with the AVI file format. Other file formats, such as QuickTime, use a different encoding for uncompressed video.
This codec currently only supports encoding from a BufferedImage
into
the file format. Decoding support may be added in the future.
This codec does not encode the color palette of an image. This must be done separately.
The pixels of a frame are written row by row from bottom to top and from the left to the right. 24-bit pixels are encoded as BGR.
Supported input formats:
Format
with BufferedImage.class
, any width, any height,
depth=4.
Format
with byte[].class
, same width and height as input
format, depth=4.
inputFormat, inputFormats, name, outputFormat, outputFormats
CODEC_FAILED, CODEC_INPUT_NOT_CONSUMED, CODEC_OK, CODEC_OUTPUT_NOT_FILLED
Constructor and Description |
---|
DIBCodec() |
Modifier and Type | Method and Description |
---|---|
int |
decode(Buffer in,
Buffer out) |
int |
encode(Buffer in,
Buffer out) |
int |
process(Buffer in,
Buffer out)
Performs the media processing defined by this codec.
|
void |
readKey24(int[] in,
int offset,
int length,
java.awt.image.BufferedImage img) |
void |
readKey4(byte[] in,
int offset,
int length,
java.awt.image.BufferedImage img) |
void |
readKey8(byte[] in,
int offset,
int length,
java.awt.image.BufferedImage img) |
void |
writeKey24(java.io.OutputStream out,
int[] pixels,
int width,
int height,
int offset,
int scanlineStride)
Encodes a 24-bit key frame.
|
void |
writeKey4(java.io.OutputStream out,
byte[] pixels,
int width,
int height,
int offset,
int scanlineStride)
Encodes a 4-bit key frame.
|
void |
writeKey8(java.io.OutputStream out,
byte[] pixels,
int width,
int height,
int offset,
int scanlineStride)
Encodes an 8-bit key frame.
|
copyImage, getARGB32, getBufferedImage, getIndexed8, getRGB15, getRGB16, getRGB24, writeInt24, writeInt24LE, writeInts24, writeInts24LE
getInputFormat, getInputFormats, getName, getOutputFormat, getOutputFormats, reset, setInputFormat, setOutputFormat, toString
public int process(Buffer in, Buffer out)
Codec
Copies the data from the input buffer into the output buffer.
public void readKey4(byte[] in, int offset, int length, java.awt.image.BufferedImage img)
public void readKey8(byte[] in, int offset, int length, java.awt.image.BufferedImage img)
public void readKey24(int[] in, int offset, int length, java.awt.image.BufferedImage img)
public void writeKey4(java.io.OutputStream out, byte[] pixels, int width, int height, int offset, int scanlineStride) throws java.io.IOException
out
- The output stream.pixels
- The image data.offset
- The offset to the first pixel in the data array.width
- The width of the image in data elements.scanlineStride
- The number to append to offset to get to the next scanline.java.io.IOException
public void writeKey8(java.io.OutputStream out, byte[] pixels, int width, int height, int offset, int scanlineStride) throws java.io.IOException
out
- The output stream.pixels
- The image data.offset
- The offset to the first pixel in the data array.width
- The width of the image in data elements.scanlineStride
- The number to append to offset to get to the next scanline.java.io.IOException
public void writeKey24(java.io.OutputStream out, int[] pixels, int width, int height, int offset, int scanlineStride) throws java.io.IOException
out
- The output stream.pixels
- The image data.offset
- The offset to the first pixel in the data array.width
- The width of the image in data elements.scanlineStride
- The number to append to offset to get to the next scanline.java.io.IOException