GDCM  2.2.4
gdcmImageCodec.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: GDCM (Grassroots DICOM). A DICOM library
4 
5  Copyright (c) 2006-2011 Mathieu Malaterre
6  All rights reserved.
7  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
14 #ifndef GDCMIMAGECODEC_H
15 #define GDCMIMAGECODEC_H
16 
17 #include "gdcmCodec.h"
19 #include "gdcmLookupTable.h"
20 #include "gdcmSmartPointer.h"
21 #include "gdcmPixelFormat.h"
22 
23 namespace gdcm
24 {
25 
31 {
33 public:
34  ImageCodec();
35  ~ImageCodec();
36  bool CanCode(TransferSyntax const &) const { return false; }
37  bool CanDecode(TransferSyntax const &) const { return false; }
38  bool Decode(DataElement const &is_, DataElement &os);
39  bool IsLossy() const;
40  void SetLossyFlag(bool l);
41  bool GetLossyFlag() const;
42 
43  virtual bool GetHeaderInfo(std::istream &is_, TransferSyntax &ts);
44 
45 protected:
46  bool DecodeByStreams(std::istream &is_, std::ostream &os);
47  virtual bool IsValid(PhotometricInterpretation const &pi);
48 public:
49 
50  unsigned int GetPlanarConfiguration() const
51  {
52  return PlanarConfiguration;
53  }
54  void SetPlanarConfiguration(unsigned int pc)
55  {
56  assert( pc == 0 || pc == 1 );
57  PlanarConfiguration = pc;
58  }
59 
61  {
62  return PF;
63  }
64  const PixelFormat &GetPixelFormat() const
65  {
66  return PF;
67  }
68  virtual void SetPixelFormat(PixelFormat const &pf)
69  {
70  PF = pf;
71  }
72  const PhotometricInterpretation &GetPhotometricInterpretation() const;
73  void SetPhotometricInterpretation(PhotometricInterpretation const &pi);
74 
75  bool GetNeedByteSwap() const
76  {
77  return NeedByteSwap;
78  }
79  void SetNeedByteSwap(bool b)
80  {
81  NeedByteSwap = b;
82  }
83  void SetNeedOverlayCleanup(bool b)
84  {
85  NeedOverlayCleanup = b;
86  }
87  void SetLUT(LookupTable const &lut)
88  {
89  LUT = SmartPointer<LookupTable>( const_cast<LookupTable*>(&lut) );
90  }
91  const LookupTable &GetLUT() const
92  {
93  return *LUT;
94  }
95 
96  void SetDimensions(const unsigned int d[3]);
97  void SetDimensions(const std::vector<unsigned int> & d);
98  const unsigned int *GetDimensions() const { return Dimensions; }
99  void SetNumberOfDimensions(unsigned int dim);
100  unsigned int GetNumberOfDimensions() const;
101 
102 protected:
105 //private:
106  unsigned int PlanarConfiguration;
111 
114  unsigned int Dimensions[3]; // FIXME
115  unsigned int NumberOfDimensions;
116  bool LossyFlag;
117 
118  bool DoOverlayCleanup(std::istream &is_, std::ostream &os);
119  bool DoByteSwap(std::istream &is_, std::ostream &os);
120  bool DoYBR(std::istream &is_, std::ostream &os);
121  bool DoPlanarConfiguration(std::istream &is_, std::ostream &os);
122  bool DoSimpleCopy(std::istream &is_, std::ostream &os);
123  bool DoPaddedCompositePixelCode(std::istream &is_, std::ostream &os);
124  bool DoInvertMonochrome(std::istream &is_, std::ostream &os);
125 
126  //template <typename T>
127  //bool DoInvertPlanarConfiguration(T *output, const T *input, uint32_t length);
128 };
129 
130 } // end namespace gdcm
131 
132 #endif //GDCMIMAGECODEC_H
LookupTable class.
Definition: gdcmLookupTable.h:29
bool RequestPlanarConfiguration
Definition: gdcmImageCodec.h:103
const PixelFormat & GetPixelFormat() const
Definition: gdcmImageCodec.h:64
void SetLUT(LookupTable const &lut)
Definition: gdcmImageCodec.h:87
void SetPlanarConfiguration(unsigned int pc)
Definition: gdcmImageCodec.h:54
SmartPointer< LookupTable > LUTPtr
Definition: gdcmImageCodec.h:112
#define GDCM_EXPORT
Definition: gdcmWin32.h:34
PhotometricInterpretation PI
Definition: gdcmImageCodec.h:107
bool RequestPaddedCompositePixelCode
Definition: gdcmImageCodec.h:104
unsigned int PlanarConfiguration
Definition: gdcmImageCodec.h:106
ImageCodec.
Definition: gdcmImageCodec.h:30
bool GetNeedByteSwap() const
Definition: gdcmImageCodec.h:75
bool NeedByteSwap
Definition: gdcmImageCodec.h:109
Codec class.
Definition: gdcmCodec.h:26
Class to represent a Data Element either Implicit or Explicit.
Definition: gdcmDataElement.h:58
const unsigned int * GetDimensions() const
Definition: gdcmImageCodec.h:98
bool LossyFlag
Definition: gdcmImageCodec.h:116
virtual void SetPixelFormat(PixelFormat const &pf)
Definition: gdcmImageCodec.h:68
Class to manipulate Transfer Syntax.
Definition: gdcmTransferSyntax.h:39
void SetNeedByteSwap(bool b)
Definition: gdcmImageCodec.h:79
unsigned int GetPlanarConfiguration() const
Definition: gdcmImageCodec.h:50
bool NeedOverlayCleanup
Definition: gdcmImageCodec.h:110
const LookupTable & GetLUT() const
Definition: gdcmImageCodec.h:91
Class to represent an PhotometricInterpretation.
Definition: gdcmPhotometricInterpretation.h:28
bool CanCode(TransferSyntax const &) const
Return whether this coder support this transfer syntax (can code it)
Definition: gdcmImageCodec.h:36
unsigned int NumberOfDimensions
Definition: gdcmImageCodec.h:115
PixelFormat PF
Definition: gdcmImageCodec.h:108
LUTPtr LUT
Definition: gdcmImageCodec.h:113
PixelFormat & GetPixelFormat()
Definition: gdcmImageCodec.h:60
void SetNeedOverlayCleanup(bool b)
Definition: gdcmImageCodec.h:83
bool CanDecode(TransferSyntax const &) const
Return whether this decoder support this transfer syntax (can decode it)
Definition: gdcmImageCodec.h:37
PixelFormat.
Definition: gdcmPixelFormat.h:36
ImageChangePhotometricInterpretation class Class to change the Photometric Interpetation of an input ...
Definition: gdcmImageChangePhotometricInterpretation.h:28
Definition: gdcmTerminal.h:52

Generated on Sat Nov 16 2013 18:10:55 for GDCM by doxygen 1.8.5
SourceForge.net Logo