⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 djencode.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
字号:
/* * *  Copyright (C) 1997-2005, OFFIS * *  This software and supporting documentation were developed by * *    Kuratorium OFFIS e.V. *    Healthcare Information and Communication Systems *    Escherweg 2 *    D-26121 Oldenburg, Germany * *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * *  Module:  dcmjpeg * *  Author:  Marco Eichelberg * *  Purpose: singleton class that registers encoders for all supported JPEG processes. * *  Last Update:      $Author: meichel $ *  Update Date:      $Date: 2005/12/08 16:59:32 $ *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmjpeg/include/dcmtk/dcmjpeg/djencode.h,v $ *  CVS/RCS Revision: $Revision: 1.6 $ *  Status:           $State: Exp $ * *  CVS/RCS Log at end of file * */#ifndef DJENCODE_H#define DJENCODE_H#include "dcmtk/config/osconfig.h"#include "dcmtk/ofstd/oftypes.h"  /* for OFBool */#include "dcmtk/dcmjpeg/djutils.h"#include "dcmtk/dcmdata/dctypes.h"  /* for Uint32 */class DJCodecParameter;class DJEncoderBaseline;class DJEncoderExtended;class DJEncoderLossless;class DJEncoderP14SV1;class DJEncoderProgressive;class DJEncoderSpectralSelection;/** singleton class that registers encoders for all supported JPEG processes. */class DJEncoderRegistration{public:  /** registers encoders for all supported JPEG processes.   *  If already registered, call is ignored unless cleanup() has   *  been performed before.   *  @param pCompressionCSConversion color conversion mode for compression   *  @param pCreateSOPInstanceUID mode for SOP Instance UID creation   *  @param pVerbose verbose mode flag   *  @param pOptimizeHuffman perform huffman table optimization for 8 bits/pixel compression?   *  @param pSmoothingFactor smoothing factor for image compression, 0..100   *  @param pForcedBitDepth forced bit depth for image compression, 0 (auto) or 8/12/16   *  @param pFragmentSize maximum fragment size (in kbytes) for compression, 0 for unlimited.   *  @param pCreateOffsetTable create offset table during image compression?   *  @param pSampleFactors subsampling mode for color image compression   *  @param pWriteYBR422 flag indicating whether a compressed YBR color stream should   *    be marked as YBR_FULL or YBR_FULL_422 on DICOM level   *  @param pConvertToSC flag indicating whether image should be converted to   *    Secondary Capture upon compression   *  @param pWindowType mode for VOI transformation of monochrome images   *  @param pWindowParameter parameter for VOI transform of monochrome images, used in modes 1, 2, 4, 6   *  @param pVoiCenter VOI window center for mode 5   *  @param pVoiWidth  VOI window width for mode 5   *  @param pRoiLeft   Region of Interest left corner for for VOI transform of monochrome images, mode 7   *  @param pRoiTop    Region of Interest upper corner for for VOI transform of monochrome images, mode 7   *  @param pRoiWidth  Region of Interest width for for VOI transform of monochrome images, mode 7   *  @param pRoiHeight Region of Interest height for for VOI transform of monochrome images, mode 7   *  @param pUsePixelValues Check smallest and largest pixel value and optimize compression, mode 0 only   *  @param pUseModalityRescale Create Rescale Slope/Intercept to scale back   *     to original pixel range, mode 0 only   *  @param pAcceptWrongPaletteTags Accept wrong palette attribute tags (only "pseudo lossless" encoder)   *  @param pAcrNemaCompatibility Accept old ACR-NEMA images without photometric interpretation (only "pseudo lossless" encoder)   *  @param pRealLossless Enables true lossless compression (replaces old "pseudo" lossless encoders)   */  static void registerCodecs(    E_CompressionColorSpaceConversion pCompressionCSConversion = ECC_lossyYCbCr,    E_UIDCreation pCreateSOPInstanceUID = EUC_default,    OFBool pVerbose = OFFalse,    OFBool pOptimizeHuffman = OFFalse,    int pSmoothingFactor = 0,    int pForcedBitDepth = 0,    Uint32 pFragmentSize = 0,    OFBool pCreateOffsetTable = OFTrue,    E_SubSampling pSampleFactors = ESS_444,    OFBool pWriteYBR422 = OFFalse,    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 = OFFalse);  /** deregisters encoders.   *  Attention: Must not be called while other threads might still use   *  the registered codecs, e.g. because they are currently encoding   *  DICOM data sets through dcmdata.   */  static void cleanup();private:  /// flag indicating whether the encoders are already registered.  static OFBool registered;  /// pointer to codec parameter shared by all encoders  static DJCodecParameter *cp;  /// pointer to encoder for baseline JPEG  static DJEncoderBaseline *encbas;  /// pointer to encoder for extended JPEG  static DJEncoderExtended *encext;  /// pointer to encoder for spectral selection JPEG  static DJEncoderSpectralSelection *encsps;  /// pointer to encoder for progressive JPEG  static DJEncoderProgressive *encpro;  /// pointer to encoder for lossless SV1 JPEG  static DJEncoderP14SV1 *encsv1;  /// pointer to encoder for lossless JPEG  static DJEncoderLossless *enclol;};#endif/* * CVS/RCS Log * $Log: djencode.h,v $ * Revision 1.6  2005/12/08 16:59:32  meichel * Changed include path schema for all DCMTK header files * * Revision 1.5  2005/11/29 15:57:05  onken * Added commandline options --accept-acr-nema and --accept-palettes * (same as in dcm2pnm) to dcmcjpeg and extended dcmjpeg to support * these options. Thanks to Gilles Mevel for suggestion. * * Revision 1.3  2005/11/29 08:50:34  onken * Added support for "true" lossless compression in dcmjpeg, that doesn't *   use dcmimage classes, but compresses raw pixel data (8 and 16 bit) to *   avoid losses in quality caused by color space conversions or modality *   transformations etc. * Corresponding commandline option in dcmcjpeg (new default) * * Revision 1.2  2001/11/19 15:13:29  meichel * Introduced verbose mode in module dcmjpeg. If enabled, warning *   messages from the IJG library are printed on ofConsole, otherwise *   the library remains quiet. * * Revision 1.1  2001/11/13 15:56:27  meichel * Initial release of module dcmjpeg * * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -