DCMTK Version 3.6.7
OFFIS DICOM Toolkit
dcmjpeg: a compression/decompression library and utility apps

This module contains classes that convert between uncompressed and JPEG compressed representations (transfer syntaxes) of a DICOM image object. Both lossless and lossy JPEG processes are supported. This module implements a family of codecs that are derived from class DcmCodec and can be registered in the codec list maintained in module dcmdata.

The main interface classes are:

Tools

This module contains the following command line tools:

Examples

The following example shows how to compress a DICOM image file with lossless JPEG:

DJEncoderRegistration::registerCodecs(); // register JPEG codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test.dcm").good())
{
DcmDataset *dataset = fileformat.getDataset();
DcmItem *metaInfo = fileformat.getMetaInfo();
DJ_RPLossless params; // codec parameters, we use the defaults
// this causes the lossless JPEG version of the dataset to be created
if (dataset->chooseRepresentation(EXS_JPEGProcess14SV1, &params).good() &&
{
// store in lossless JPEG format
fileformat.saveFile("test_jpeg.dcm", EXS_JPEGProcess14SV1);
}
}
DJEncoderRegistration::cleanup(); // deregister JPEG codecs
static void registerCodecs(E_CompressionColorSpaceConversion pCompressionCSConversion=ECC_lossyYCbCr, E_UIDCreation pCreateSOPInstanceUID=EUC_default, OFBool pOptimizeHuffman=OFFalse, int pSmoothingFactor=0, int pForcedBitDepth=0, Uint32 pFragmentSize=0, OFBool pCreateOffsetTable=OFTrue, E_SubSampling pSampleFactors=ESS_422, OFBool pWriteYBR422=OFTrue, OFBool pConvertToSC=OFFalse, unsigned long pWindowType=0, unsigned long pWindowParameter=0, double pVoiCenter=0.0, double pVoiWidth=0.0, unsigned long pRoiLeft=0, unsigned long pRoiTop=0, unsigned long pRoiWidth=0, unsigned long pRoiHeight=0, OFBool pUsePixelValues=OFTrue, OFBool pUseModalityRescale=OFFalse, OFBool pAcceptWrongPaletteTags=OFFalse, OFBool pAcrNemaCompatibility=OFFalse, OFBool pRealLossless=OFTrue)
registers encoders for all supported JPEG processes.
static void cleanup()
deregisters encoders.
representation parameter for lossless JPEG
Definition: djrplol.h:32
a class handling the DICOM dataset format (files without meta header)
Definition: dcdatset.h:42
OFCondition chooseRepresentation(const E_TransferSyntax repType, const DcmRepresentationParameter *repParam)
select a specific representation (compressed or uncompressed) of the dataset and create the represent...
virtual OFBool canWriteXfer(const E_TransferSyntax newXfer, const E_TransferSyntax oldXfer=EXS_Unknown)
check if this DICOM object can be encoded in the given transfer syntax.
a class handling the DICOM file format (with meta header)
Definition: dcfilefo.h:44
virtual OFCondition saveFile(const OFFilename &fileName, const E_TransferSyntax writeXfer=EXS_Unknown, const E_EncodingType encodingType=EET_UndefinedLength, const E_GrpLenEncoding groupLength=EGL_recalcGL, const E_PaddingEncoding padEncoding=EPD_noChange, const Uint32 padLength=0, const Uint32 subPadLength=0, const E_FileWriteMode writeMode=EWM_createNewMeta)
save object to a DICOM file.
DcmDataset * getDataset()
get dataset part of the fileformat
DcmMetaInfo * getMetaInfo()
get file meta information header part of the fileformat
virtual OFCondition loadFile(const OFFilename &fileName, const E_TransferSyntax readXfer=EXS_Unknown, const E_GrpLenEncoding groupLength=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength, const E_FileReadMode readMode=ERM_autoDetect)
load object from a DICOM file.
a class representing a list of DICOM elements in which each element has a different tag and elements ...
Definition: dcitem.h:48
OFBool good() const
check if the status is OK.
Definition: ofcond.h:293
@ EXS_JPEGProcess14SV1
JPEG Lossless, Selection Value 1.
Definition: dcxfer.h:83

The following example shows how to decompress a JPEG-compressed DICOM image file:

DJDecoderRegistration::registerCodecs(); // register JPEG codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test_jpeg.dcm").good())
{
DcmDataset *dataset = fileformat.getDataset();
// decompress data set if compressed
{
fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit);
}
}
DJDecoderRegistration::cleanup(); // deregister JPEG codecs
static void cleanup()
deregisters decoders.
static void registerCodecs(E_DecompressionColorSpaceConversion pDecompressionCSConversion=EDC_photometricInterpretation, E_UIDCreation pCreateSOPInstanceUID=EUC_default, E_PlanarConfiguration pPlanarConfiguration=EPC_default, OFBool predictor6WorkaroundEnable=OFFalse, OFBool cornellWorkaroundEnable=OFFalse, OFBool pForceSingleFragmentPerFrame=OFFalse)
registers decoders for all supported JPEG processes.
@ EXS_LittleEndianExplicit
Explicit VR Little Endian.
Definition: dcxfer.h:45


Generated on Wed Jan 4 2023 for DCMTK Version 3.6.7 by Doxygen 1.9.4