/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef GDCMPIXMAPREADER_H #define GDCMPIXMAPREADER_H #include "gdcmReader.h" #include "gdcmPixmap.h" namespace gdcm { class ByteValue; class MediaStorage; /** * \brief PixmapReader * \details * \note its role is to convert the DICOM DataSet into a Pixmap * representation * By default it is also loading the lookup table and overlay when found as * they impact the rendering or the image * * See PS 3.3-2008, Table C.7-11b IMAGE PIXEL MACRO ATTRIBUTES for the list of * attribute that belong to what gdcm calls a 'Pixmap' * * \warning the API ReadUpToTag and ReadSelectedTag * * \see Pixmap */ class GDCM_EXPORT PixmapReader : public Reader { public: PixmapReader(); ~PixmapReader() override; //needs to be virtual to ensure lack of memory leaks /// Read the DICOM image. There are two reason for failure: /// 1. The input filename is not DICOM /// 2. The input DICOM file does not contains an Pixmap. bool Read() override; // Following methods are valid only after a call to 'Read' /// Return the read image (need to call Read() first) const Pixmap& GetPixmap() const; Pixmap& GetPixmap(); //void SetPixamp(Pixmap const &pix); protected: bool ReadImageInternal(MediaStorage const &ms, bool handlepixeldata = true); virtual bool ReadImage(MediaStorage const &ms); virtual bool ReadACRNEMAImage(); SmartPointer PixelData; }; /** * \example StandardizeFiles.cs * This is a C++ example on how to use PixmapReader */ } // end namespace gdcm #endif //GDCMPIXMAPREADER_H