public class TJCompressor extends Object
Constructor and Description |
---|
TJCompressor()
Create a TurboJPEG compressor instance.
|
TJCompressor(byte[] srcImage,
int width,
int pitch,
int height,
int pixelFormat)
Create a TurboJPEG compressor instance and associate the uncompressed
source image stored in
srcImage with the newly-created
instance. |
Modifier and Type | Method and Description |
---|---|
void |
close()
Free the native structures associated with this compressor instance.
|
void |
compress(BufferedImage srcImage,
byte[] dstBuf,
int flags)
Compress the uncompressed source image stored in
srcImage
and output a JPEG image to the given destination buffer. |
byte[] |
compress(BufferedImage srcImage,
int flags)
Compress the uncompressed source image stored in
srcImage
and return a buffer containing a JPEG image. |
void |
compress(byte[] dstBuf,
int flags)
Compress the uncompressed source image associated with this compressor
instance and output a JPEG image to the given destination buffer.
|
byte[] |
compress(int flags)
Compress the uncompressed source image associated with this compressor
instance and return a buffer containing a JPEG image.
|
void |
encodeYUV(BufferedImage srcImage,
byte[] dstBuf,
int flags)
Encode the uncompressed source image stored in
srcImage
and output a YUV planar image to the given destination buffer. |
byte[] |
encodeYUV(BufferedImage srcImage,
int flags)
Encode the uncompressed source image stored in
srcImage
and return a buffer containing a YUV planar image. |
void |
encodeYUV(byte[] dstBuf,
int flags)
Encode the uncompressed source image associated with this compressor
instance and output a YUV planar image to the given destination buffer.
|
byte[] |
encodeYUV(int flags)
Encode the uncompressed source image associated with this compressor
instance and return a buffer containing a YUV planar image.
|
protected void |
finalize() |
int |
getCompressedSize()
Returns the size of the image (in bytes) generated by the most recent
compress/encode operation.
|
void |
setJPEGQuality(int quality)
Set the JPEG image quality level for subsequent compress operations.
|
void |
setSourceImage(byte[] srcImage,
int width,
int pitch,
int height,
int pixelFormat)
Associate an uncompressed source image with this compressor instance.
|
void |
setSubsamp(int newSubsamp)
Set the level of chrominance subsampling for subsequent compress/encode
operations.
|
public TJCompressor() throws Exception
Exception
public TJCompressor(byte[] srcImage, int width, int pitch, int height, int pixelFormat) throws Exception
srcImage
with the newly-created
instance.srcImage
- see setSourceImage(byte[], int, int, int, int)
for descriptionwidth
- see setSourceImage(byte[], int, int, int, int)
for descriptionpitch
- see setSourceImage(byte[], int, int, int, int)
for descriptionheight
- see setSourceImage(byte[], int, int, int, int)
for descriptionpixelFormat
- see setSourceImage(byte[], int, int, int, int)
for descriptionException
public void setSourceImage(byte[] srcImage, int width, int pitch, int height, int pixelFormat) throws Exception
srcImage
- image buffer containing RGB or grayscale pixels to be
compressedwidth
- width (in pixels) of the source imagepitch
- bytes per line of the source image. Normally, this should be
width * TJ.pixelSize(pixelFormat)
if the source image is
unpadded, but you can use this parameter to, for instance, specify that
the scanlines in the source image are padded to 4-byte boundaries, as is
the case for Windows bitmaps. You can also be clever and use this
parameter to skip lines, etc. Setting this parameter to 0 is the
equivalent of setting it to width *
TJ.pixelSize(pixelFormat)
.height
- height (in pixels) of the source imagepixelFormat
- pixel format of the source image (one of
TJ.PF_*
)Exception
public void setSubsamp(int newSubsamp) throws Exception
public void setJPEGQuality(int quality) throws Exception
quality
- the new JPEG image quality level (1 to 100, 1 = worst,
100 = best)Exception
public void compress(byte[] dstBuf, int flags) throws Exception
dstBuf
- buffer that will receive the JPEG image. Use
TJ.bufSize(int, int, int)
to determine the maximum size for this buffer based on
the image width and height.flags
- the bitwise OR of one or more of TJ.FLAG_*
Exception
public byte[] compress(int flags) throws Exception
flags
- the bitwise OR of one or more of TJ.FLAG_*
getCompressedSize()
to obtain the size of the JPEG image.Exception
public void compress(BufferedImage srcImage, byte[] dstBuf, int flags) throws Exception
srcImage
and output a JPEG image to the given destination buffer.srcImage
- a BufferedImage
instance containing RGB or
grayscale pixels to be compresseddstBuf
- buffer that will receive the JPEG image. Use
TJ.bufSize(int, int, int)
to determine the maximum size for this buffer based on
the image width and height.flags
- the bitwise OR of one or more of TJ.FLAG_*
Exception
public byte[] compress(BufferedImage srcImage, int flags) throws Exception
srcImage
and return a buffer containing a JPEG image.srcImage
- a BufferedImage
instance containing RGB or
grayscale pixels to be compressedflags
- the bitwise OR of one or more of TJ.FLAG_*
getCompressedSize()
to obtain the size of the JPEG image.Exception
public void encodeYUV(byte[] dstBuf, int flags) throws Exception
TJ.SAMP_420
, which produces an image compatible with the I420 (AKA
"YUV420P") format.dstBuf
- buffer that will receive the YUV planar image. Use
TJ.bufSizeYUV(int, int, int)
to determine the appropriate size for this buffer
based on the image width, height, and level of chrominance subsampling.flags
- the bitwise OR of one or more of TJ.FLAG_*
Exception
public byte[] encodeYUV(int flags) throws Exception
encodeYUV(byte[], int)
for more detail.public void encodeYUV(BufferedImage srcImage, byte[] dstBuf, int flags) throws Exception
srcImage
and output a YUV planar image to the given destination buffer. See
encodeYUV(byte[], int)
for more detail.srcImage
- a BufferedImage
instance containing RGB or
grayscale pixels to be encodeddstBuf
- buffer that will receive the YUV planar image. Use
TJ.bufSizeYUV(int, int, int)
to determine the appropriate size for this buffer
based on the image width, height, and level of chrominance subsampling.flags
- the bitwise OR of one or more of TJ.FLAG_*
Exception
public byte[] encodeYUV(BufferedImage srcImage, int flags) throws Exception
srcImage
and return a buffer containing a YUV planar image. See
encodeYUV(byte[], int)
for more detail.public int getCompressedSize()
public void close() throws Exception
Exception
Copyright © 2006–2019 GeoSolutions. All rights reserved.