Isis Developer Reference
Isis::JP2Decoder Class Reference

JPEG2000 decoder class. More...

#include <JP2Decoder.h>

Collaboration diagram for Isis::JP2Decoder:
Collaboration graph

Public Member Functions

 JP2Decoder (const QString &jp2file)
 Constructs a JPEG2000 decoder object. More...
 
 ~JP2Decoder ()
 JP2Decoder destructor. More...
 
JP2Errorkakadu_error () const
 
void OpenFile ()
 Open the JPEG2000 file. More...
 
int GetSampleDimension () const
 
int GetLineDimension () const
 
int GetBandDimension () const
 
int GetPixelBytes () const
 
bool GetSignedData () const
 
void Read (unsigned char **inbuf)
 Read data from JP2 file containing 8-bit data. More...
 
void Read (short int **inbuf)
 Read data from JP2 file containing 16-bit data. More...
 

Static Public Member Functions

static bool IsJP2 (QString filename)
 

Detailed Description

JPEG2000 decoder class.

This class is used to decode a JPEG2000 image.

Here is an example of how to use JP2Decoder

JP2Decoder *JP2_decoder;
JP2_decoder = new JP2Decoder(QString(ui.GetFileName("FROM")));
JP2_decoder->OpenFile();
int nsamps = JP2_decoder->GetSampleDimension();
int nlines = JP2_decoder->GetLineDimension();
int nbands = JP2_decoder->GetBandDimension();
int pixelbytes = JP2_decoder->GetPixelBytes();
bool is_signed = JP2_decoder->GetSignedData();
delete JP2_decoder;
ProcessImport jp;
jp.SetDimensions(nsamps,nlines,nbands);
if (pixelbytes == 1) {
jp.SetPixelType(Isis::UnsignedByte);
} else if (pixelbytes == 2) {
if (is_signed) {
jp.SetPixelType(Isis::SignedWord);
} else {
jp.SetPixelType(Isis::UnsignedWord);
}
} else {
throw iException::Message(iException::User,
"The file [" + ui.GetFileName("FROM") + "] contains unsupported data type.",
}
jp.SetInputFile(QString(ui.GetFileName("FROM")));
jp.SetOutputCube("TO");
jp.SetOrganization(ProcessImport::JP2);
jp.StartProcess();
jp.EndProcess();

If you would like to see JP2Decoder being used in implementation, see std2isis.cpp or for a class that implements JP2Decoder, see ProcessImport

Author
2009-12-18 Janet Barrett

Constructor & Destructor Documentation

◆ JP2Decoder()

Isis::JP2Decoder::JP2Decoder ( const QString &  jp2file)

Constructs a JPEG2000 decoder object.

Parameters
jp2fileThe name of the JP2 file that needs to be decoded.

References _FILEINFO_.

◆ ~JP2Decoder()

Isis::JP2Decoder::~JP2Decoder ( )

JP2Decoder destructor.

Member Function Documentation

◆ GetBandDimension()

◆ GetLineDimension()

int Isis::JP2Decoder::GetLineDimension ( ) const
inline

◆ GetPixelBytes()

int Isis::JP2Decoder::GetPixelBytes ( ) const
inline

◆ GetSampleDimension()

int Isis::JP2Decoder::GetSampleDimension ( ) const
inline

◆ GetSignedData()

bool Isis::JP2Decoder::GetSignedData ( ) const
inline

◆ IsJP2()

bool Isis::JP2Decoder::IsJP2 ( QString  filename)
static

◆ kakadu_error()

JP2Error* Isis::JP2Decoder::kakadu_error ( ) const
inline

◆ OpenFile()

void Isis::JP2Decoder::OpenFile ( )

◆ Read() [1/2]

void Isis::JP2Decoder::Read ( short int **  inbuf)

Read data from JP2 file containing 16-bit data.

Parameters
inbufThe array of pointers to byte buffers that will be used to read in the image data. One byte buffer is required for each band in the image. Kakadu reads in a BIL manner. It is up to the calling routine to do the casting necessary to convert the byte data to the actual pixel type (UnsignedByte, UnsignedWord, SignedWord).

◆ Read() [2/2]

void Isis::JP2Decoder::Read ( unsigned char **  inbuf)

Read data from JP2 file containing 8-bit data.

Parameters
inbufThe array of pointers to byte buffers that will be used to read in the image data. One byte buffer is required for each band in the image. Kakadu reads in a BIL manner. It is up to the calling routine to do the casting necessary to convert the byte data to the actual pixel type (UnsignedByte, UnsignedWord, SignedWord).

Referenced by Isis::ProcessImport::ProcessJp2(), and Isis::JP2Importer::updateRawBuffer().


The documentation for this class was generated from the following files:
Isis::UnsignedWord
@ UnsignedWord
Definition: PixelType.h:31
Isis::SignedWord
@ SignedWord
Definition: PixelType.h:32
Isis::JP2Decoder::JP2Decoder
JP2Decoder(const QString &jp2file)
Constructs a JPEG2000 decoder object.
Definition: JP2Decoder.cpp:32
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::ProcessImport::JP2
@ JP2
Jpeg 2000 Format (always band sequential).
Definition: ProcessImport.h:280
Isis::UnsignedByte
@ UnsignedByte
Definition: PixelType.h:29