GDCM 2.0.17
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 Module: $URL$ 00005 00006 Copyright (c) 2006-2010 Mathieu Malaterre 00007 All rights reserved. 00008 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 #ifndef GDCMJPEG2000CODEC_H 00016 #define GDCMJPEG2000CODEC_H 00017 00018 #include "gdcmImageCodec.h" 00019 00020 namespace gdcm 00021 { 00022 00023 class JPEG2000Internals; 00031 class GDCM_EXPORT JPEG2000Codec : public ImageCodec 00032 { 00033 friend class Bitmap; 00034 public: 00035 JPEG2000Codec(); 00036 ~JPEG2000Codec(); 00037 00038 bool CanDecode(TransferSyntax const &ts) const; 00039 bool CanCode(TransferSyntax const &ts) const; 00040 00041 bool Decode(DataElement const &is, DataElement &os); 00042 bool Code(DataElement const &in, DataElement &out); 00043 00044 virtual bool GetHeaderInfo(std::istream &is, TransferSyntax &ts); 00045 00046 // JPEG-2000 / OpenJPEG specific way of encoding lossy-ness 00047 // ref: http://www.openjpeg.org/index.php?menu=doc#encoder 00048 void SetRate(unsigned int idx, double rate); 00049 double GetRate(unsigned int idx = 0) const; 00050 00051 void SetQuality(unsigned int idx, double q); 00052 double GetQuality(unsigned int idx = 0) const; 00053 00054 void SetTileSize(unsigned int tx, unsigned int ty); 00055 00056 void SetNumberOfResolutions(unsigned int nres); 00057 00058 void SetReversible(bool res); 00059 00060 protected: 00061 bool Decode(std::istream &is, std::ostream &os); 00062 private: 00063 bool GetHeaderInfo(const char * dummy_buffer, size_t len, TransferSyntax &ts); 00064 JPEG2000Internals *Internals; 00065 }; 00066 00067 } // end namespace gdcm 00068 00069 #endif //GDCMJPEG2000CODEC_H