DYT/Tool/3rdParty_x64/include/dcmtk/dcmjpls/djrparam.h
2024-11-22 23:19:31 +08:00

98 lines
2.5 KiB
C++

/*
*
* Copyright (C) 1997-2011, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmjpls
*
* Author: Martin Willkomm
*
* Purpose: representation parameters for JPEG-LS
*
*/
#ifndef DCMJPLS_DJRPARAM_H
#define DCMJPLS_DJRPARAM_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dcpixel.h" /* for class DcmRepresentationParameter */
#include "dcmtk/dcmjpls/dldefine.h"
/** representation parameter for JPEG-LS
*/
class DCMTK_DCMJPLS_EXPORT DJLSRepresentationParameter: public DcmRepresentationParameter
{
public:
/** constructor
* @param nearlosslessDeviation used as parameter NEAR in JPEG-LS nearlossless-encoding process
* @param losslessProcess true if lossless process is requested
*/
DJLSRepresentationParameter(
Uint16 nearlosslessDeviation = 2,
OFBool losslessProcess = OFTrue);
/// copy constructor
DJLSRepresentationParameter(const DJLSRepresentationParameter& arg);
/// destructor
virtual ~DJLSRepresentationParameter();
/** this methods creates a copy of type DcmRepresentationParameter *
* it must be overweritten in every subclass.
* @return copy of this object
*/
virtual DcmRepresentationParameter *clone() const;
/** returns the class name as string.
* can be used in operator== as poor man's RTTI replacement.
*/
virtual const char *className() const;
/** compares an object to another DcmRepresentationParameter.
* Implementation must make sure that classes are comparable.
* @param arg representation parameter to compare with
* @return true if equal, false otherwise.
*/
virtual OFBool operator==(const DcmRepresentationParameter &arg) const;
/** returns the desired NEAR parameter
* @return return desired NEAR-Parameter
*/
Uint16 getnearlosslessDeviation() const
{
return nearlosslessDeviation_;
}
/** returns true if lossless compression is desired
* @return true if lossless compression is desired
*/
OFBool useLosslessProcess() const
{
return losslessProcess_;
}
private:
/** desired NEAR parameter
* Default is 0 (lossless compression).
* Ignored during lossless compression.
*/
Uint16 nearlosslessDeviation_;
/// true if lossless process should be used even in lossy transfer syntax
OFBool losslessProcess_;
};
#endif