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.Exception
public 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.Exception
public 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.Exception
public void setSubsamp(int newSubsamp) throws java.lang.Exception
newSubsamp
- the new level of chrominance subsampling (one of
TJ.SAMP_*
)java.lang.Exception
public void setJPEGQuality(int quality) throws java.lang.Exception
quality
- the new JPEG image quality level (1 to 100, 1 = worst,
100 = best)java.lang.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public int getCompressedSize()
public void close() throws java.lang.Exception
java.lang.Exception
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
private void init() throws java.lang.Exception
java.lang.Exception
private void destroy() throws java.lang.Exception
java.lang.Exception
private 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.Exception
private 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.Exception
private void encodeYUV(byte[] srcBuf, int width, int pitch, int height, int pixelFormat, byte[] dstbuf, int subsamp, int flags) throws java.lang.Exception
java.lang.Exception
private void encodeYUV(int[] srcBuf, int width, int pitch, int height, int pixelFormat, byte[] dstbuf, int subsamp, int flags) throws java.lang.Exception
java.lang.Exception
Copyright © 2023 Open Microscopy Environment