gdcmPhotometricInterpretation.h
Go to the documentation of this file.
/*=========================================================================
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 GDCMPHOTOMETRICINTERPRETATION_H
#define GDCMPHOTOMETRICINTERPRETATION_H
#include "gdcmTypes.h"
#include <iostream>
namespace gdcm
{
class TransferSyntax;
class GDCM_EXPORT PhotometricInterpretation
{
public:
typedef enum {
UNKNOWN = 0,
MONOCHROME1,
MONOCHROME2,
PALETTE_COLOR,
RGB,
HSV,
ARGB, // retired
CMYK,
YBR_FULL,
YBR_FULL_422,
YBR_PARTIAL_422,
YBR_PARTIAL_420,
YBR_ICT,
YBR_RCT,
// PALETTE_COLOR ?
//MONOCHROME = MONOCHROME1 | MONOCHROME2,
//COLOR = RGB | HSV | ARGB | CMYK | YBR_FULL | YBR_FULL_422 | YBR_PARTIAL_422 | YBR_PARTIAL_420 | YBR_ICT | YBR_RCT,
PI_END // Helpful for internal implementation
} PIType; // PhotometricInterpretationType
PhotometricInterpretation(PIType pi = UNKNOWN):PIField(pi) {}
static const char *GetPIString(PIType pi);
const char *GetString() const;
// You need to make sure end of string is \0
static PIType GetPIType(const char *pi);
static bool IsRetired(PIType pi);
bool IsLossy() const;
bool IsLossless() const;
unsigned short GetSamplesPerPixel() const;
// TODO
// not all PhotometricInterpretation are allowed for compressed Transfer
// syntax
// static bool IsAllowedForCompressedTS(PIType pi);
friend std::ostream& operator<<(std::ostream& os, const PhotometricInterpretation& pi);
operator PIType () const { return PIField; }
PIType GetType () const { return PIField; }
// Will return whether current PhotometricInterpretation is the same Color Space as input:
// eg. RGB and YBR_RCT are
bool IsSameColorSpace( PhotometricInterpretation const &pi ) const;
//static PIType GetEquivalent(TransferSyntax const &ts);
private:
PIType PIField;
};
//-----------------------------------------------------------------------------
inline std::ostream& operator<<(std::ostream& os, const PhotometricInterpretation &val)
{
const char *s = PhotometricInterpretation::GetPIString(val.PIField);
os << (s ? s : "");
return os;
}
} // end namespace gdcm
#endif //GDCMPHOTOMETRICINTERPRETATION_H
gdcm::PhotometricInterpretation::GetPIString
static const char * GetPIString(PIType pi)
gdcm::PhotometricInterpretation::GetSamplesPerPixel
unsigned short GetSamplesPerPixel() const
return the value for Sample Per Pixel associated with a particular Photometric Interpretation
gdcm::PhotometricInterpretation::IsLossy
bool IsLossy() const
gdcm::PhotometricInterpretation::PhotometricInterpretation
PhotometricInterpretation(PIType pi=UNKNOWN)
Definition gdcmPhotometricInterpretation.h:52
gdcm::PhotometricInterpretation::IsLossless
bool IsLossless() const
gdcm::PhotometricInterpretation::IsSameColorSpace
bool IsSameColorSpace(PhotometricInterpretation const &pi) const
gdcm::PhotometricInterpretation::GetPIType
static PIType GetPIType(const char *pi)
gdcm::PhotometricInterpretation::GetType
PIType GetType() const
Definition gdcmPhotometricInterpretation.h:78
gdcm::PhotometricInterpretation::PIType
PIType
Definition gdcmPhotometricInterpretation.h:31
gdcm::PhotometricInterpretation::YBR_PARTIAL_420
@ YBR_PARTIAL_420
Definition gdcmPhotometricInterpretation.h:43
gdcm::PhotometricInterpretation::ARGB
@ ARGB
Definition gdcmPhotometricInterpretation.h:38
gdcm::PhotometricInterpretation::YBR_RCT
@ YBR_RCT
Definition gdcmPhotometricInterpretation.h:45
gdcm::PhotometricInterpretation::PALETTE_COLOR
@ PALETTE_COLOR
Definition gdcmPhotometricInterpretation.h:35
gdcm::PhotometricInterpretation::UNKNOWN
@ UNKNOWN
Definition gdcmPhotometricInterpretation.h:32
gdcm::PhotometricInterpretation::YBR_FULL_422
@ YBR_FULL_422
Definition gdcmPhotometricInterpretation.h:41
gdcm::PhotometricInterpretation::YBR_FULL
@ YBR_FULL
Definition gdcmPhotometricInterpretation.h:40
gdcm::PhotometricInterpretation::YBR_ICT
@ YBR_ICT
Definition gdcmPhotometricInterpretation.h:44
gdcm::PhotometricInterpretation::RGB
@ RGB
Definition gdcmPhotometricInterpretation.h:36
gdcm::PhotometricInterpretation::MONOCHROME1
@ MONOCHROME1
Definition gdcmPhotometricInterpretation.h:33
gdcm::PhotometricInterpretation::MONOCHROME2
@ MONOCHROME2
Definition gdcmPhotometricInterpretation.h:34
gdcm::PhotometricInterpretation::PI_END
@ PI_END
Definition gdcmPhotometricInterpretation.h:49
gdcm::PhotometricInterpretation::YBR_PARTIAL_422
@ YBR_PARTIAL_422
Definition gdcmPhotometricInterpretation.h:42
gdcm::PhotometricInterpretation::HSV
@ HSV
Definition gdcmPhotometricInterpretation.h:37
gdcm::PhotometricInterpretation::CMYK
@ CMYK
Definition gdcmPhotometricInterpretation.h:39
gdcm::PhotometricInterpretation::GetString
const char * GetString() const
gdcm::PhotometricInterpretation::IsRetired
static bool IsRetired(PIType pi)
gdcm::PhotometricInterpretation::operator<<
friend std::ostream & operator<<(std::ostream &os, const PhotometricInterpretation &pi)
Definition gdcmPhotometricInterpretation.h:90
gdcm::TransferSyntax
Class to manipulate Transfer Syntax.
Definition gdcmTransferSyntax.h:40
gdcmTypes.h
GDCM_EXPORT
#define GDCM_EXPORT
Definition gdcmWin32.h:34
gdcm
Definition gdcmASN1.h:21
gdcm::operator<<
std::ostream & operator<<(std::ostream &os, const Directory &d)
Definition gdcmDirectory.h:88