public class TJCompressor
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private java.nio.ByteOrder |
byteOrder |
private int |
compressedSize |
private long |
handle |
private int |
jpegQuality |
private static java.lang.String |
NO_ASSOC_ERROR |
private byte[] |
srcBuf |
private int |
srcHeight |
private int |
srcPitch |
private int |
srcPixelFormat |
private int |
srcWidth |
private int |
subsamp |
| 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(java.awt.image.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(java.awt.image.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.
|
private int |
compress(byte[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int jpegSubsamp,
int jpegQual,
int flags) |
byte[] |
compress(int flags)
Compress the uncompressed source image associated with this compressor
instance and return a buffer containing a JPEG image.
|
private int |
compress(int[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int jpegSubsamp,
int jpegQual,
int flags) |
private void |
destroy() |
void |
encodeYUV(java.awt.image.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(java.awt.image.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.
|
private void |
encodeYUV(byte[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int subsamp,
int flags) |
byte[] |
encodeYUV(int flags)
Encode the uncompressed source image associated with this compressor
instance and return a buffer containing a YUV planar image.
|
private void |
encodeYUV(int[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int subsamp,
int flags) |
protected void |
finalize() |
int |
getCompressedSize()
Returns the size of the image (in bytes) generated by the most recent
compress/encode operation.
|
private void |
init() |
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.
|
private static final java.lang.String NO_ASSOC_ERROR
private long handle
private byte[] srcBuf
private int srcWidth
private int srcHeight
private int srcPitch
private int srcPixelFormat
private int subsamp
private int jpegQuality
private int compressedSize
private java.nio.ByteOrder byteOrder
public TJCompressor()
throws java.lang.Exception
java.lang.Exceptionpublic TJCompressor(byte[] srcImage,
int width,
int pitch,
int height,
int pixelFormat)
throws java.lang.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 descriptionjava.lang.Exceptionpublic void setSourceImage(byte[] srcImage,
int width,
int pitch,
int height,
int pixelFormat)
throws java.lang.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_*)java.lang.Exceptionpublic void setSubsamp(int newSubsamp)
throws java.lang.Exception
newSubsamp - the new level of chrominance subsampling (one of
TJ.SAMP_*)java.lang.Exceptionpublic void setJPEGQuality(int quality)
throws java.lang.Exception
quality - the new JPEG image quality level (1 to 100, 1 = worst,
100 = best)java.lang.Exceptionpublic void compress(byte[] dstBuf,
int flags)
throws java.lang.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_*java.lang.Exceptionpublic byte[] compress(int flags)
throws java.lang.Exception
flags - the bitwise OR of one or more of TJ.FLAG_*getCompressedSize() to obtain the size of the JPEG image.java.lang.Exceptionpublic void compress(java.awt.image.BufferedImage srcImage,
byte[] dstBuf,
int flags)
throws java.lang.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_*java.lang.Exceptionpublic byte[] compress(java.awt.image.BufferedImage srcImage,
int flags)
throws java.lang.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.java.lang.Exceptionpublic void encodeYUV(byte[] dstBuf,
int flags)
throws java.lang.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_*java.lang.Exceptionpublic byte[] encodeYUV(int flags)
throws java.lang.Exception
encodeYUV(byte[], int) for more detail.flags - the bitwise OR of one or more of TJ.FLAG_*java.lang.Exceptionpublic void encodeYUV(java.awt.image.BufferedImage srcImage,
byte[] dstBuf,
int flags)
throws java.lang.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_*java.lang.Exceptionpublic byte[] encodeYUV(java.awt.image.BufferedImage srcImage,
int flags)
throws java.lang.Exception
srcImage
and return a buffer containing a YUV planar image. See
encodeYUV(byte[], int) for more detail.srcImage - a BufferedImage instance containing RGB or
grayscale pixels to be encodedflags - the bitwise OR of one or more of TJ.FLAG_*java.lang.Exceptionpublic int getCompressedSize()
public void close()
throws java.lang.Exception
java.lang.Exceptionprotected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwableprivate void init()
throws java.lang.Exception
java.lang.Exceptionprivate void destroy()
throws java.lang.Exception
java.lang.Exceptionprivate int compress(byte[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int jpegSubsamp,
int jpegQual,
int flags)
throws java.lang.Exception
java.lang.Exceptionprivate int compress(int[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int jpegSubsamp,
int jpegQual,
int flags)
throws java.lang.Exception
java.lang.Exceptionprivate void encodeYUV(byte[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int subsamp,
int flags)
throws java.lang.Exception
java.lang.Exceptionprivate void encodeYUV(int[] srcBuf,
int width,
int pitch,
int height,
int pixelFormat,
byte[] dstbuf,
int subsamp,
int flags)
throws java.lang.Exception
java.lang.ExceptionCopyright © 2020 Open Microscopy Environment