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

87 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: dcmjpeg
*
* Author: Marco Eichelberg, Norbert Olges
*
* Purpose: Codec class for encoding JPEG Extended Sequential (lossy, 8/12-bit)
*
*/
#ifndef DJENCEXT_H
#define DJENCEXT_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmjpeg/djcodece.h" /* for class DJCodecEncoder */
/** Encoder class for JPEG Extended Sequential (lossy, 8/12-bit)
*/
class DCMTK_DCMJPEG_EXPORT DJEncoderExtended : public DJCodecEncoder
{
public:
/// default constructor
DJEncoderExtended();
/// destructor
virtual ~DJEncoderExtended();
/** returns the transfer syntax that this particular codec
* is able to encode and decode.
* @return supported transfer syntax
*/
virtual E_TransferSyntax supportedTransferSyntax() const;
private:
/** returns true if the transfer syntax supported by this
* codec is lossless.
* @return lossless flag
*/
virtual OFBool isLosslessProcess() const;
/** creates 'derivation description' string after encoding.
* @param toRepParam representation parameter passed to encode()
* @param cp codec parameter passed to encode()
* @param bitsPerSample bits per sample of the original image data prior to compression
* @param ratio image compression ratio. This is not the "quality factor"
* but the real effective ratio between compressed and uncompressed image,
* i. e. 30 means a 30:1 lossy compression.
* @param imageComments image comments returned in this
* parameter which is initially empty
*/
virtual void createDerivationDescription(
const DcmRepresentationParameter * toRepParam,
const DJCodecParameter *cp,
Uint8 bitsPerSample,
double ratio,
OFString& derivationDescription) const;
/** creates an instance of the compression library to be used
* for encoding/decoding.
* @param toRepParam representation parameter passed to encode()
* @param cp codec parameter passed to encode()
* @param bitsPerSample bits per sample for the image data
* @return pointer to newly allocated codec object
*/
virtual DJEncoder *createEncoderInstance(
const DcmRepresentationParameter * toRepParam,
const DJCodecParameter *cp,
Uint8 bitsPerSample) const;
};
#endif