DiColorImage Class Reference

Base class for color images. More...

Inheritance diagram for DiColorImage:

DiImage DiARGBImage DiCMYKImage DiHSVImage DiPaletteImage DiRGBImage DiYBR422Image DiYBRImage DiYBRPart422Image List of all members.

Public Member Functions

 DiColorImage (const DiDocument *docu, const EI_Status status, const int spp, const OFBool rgb=OFTrue)
 constructor
virtual ~DiColorImage ()
 destructor
virtual EP_Interpretation getInternalColorModel () const
 get color model of internal pixel representation.
virtual unsigned long getOutputDataSize (const int bits=0) const
 get number of bytes required for the rendered output of a single frame
const void * getOutputData (const unsigned long frame, const int bits, const int planar=0)
 get pixel data with specified format.
int getOutputData (void *buffer, const unsigned long size, const unsigned long frame, const int bits, const int planar=0)
 get pixel data with specified format.
const void * getOutputPlane (const int plane) const
 get pixel data of specified plane.
void deleteOutputData ()
 delete internally handled output memory buffer Save memory if data is no longer needed.
DiImagecreateImage (const unsigned long fstart, const unsigned long fcount) const
 create copy of current image object
DiImagecreateScale (const signed long left_pos, const signed long top_pos, const unsigned long src_cols, const unsigned long src_rows, const unsigned long dest_cols, const unsigned long dest_rows, const int interpolate, const int aspect, const Uint16 pvalue) const
 create scaled copy of specified (clipping) area of the current image object.
int flip (const int horz, const int vert)
 flip current image (horizontally and/or vertically)
DiImagecreateFlip (const int horz, const int vert) const
 create a flipped copy of the current image
int rotate (const int degree)
 rotate current image (by steps of 90 degrees)
DiImagecreateRotate (const int degree) const
 create a rotated copy of the current image.
DiImagecreateMono (const double red, const double green, const double blue) const
 create monochrome copy of the current image
const DiPixelgetInterData () const
 get pointer to intermediate pixel data representation
const DiColorPixelgetColorInterData () const
 get pointer to intermediate pixel data representation
unsigned long createDIB (void *&data, const unsigned long size, const unsigned long frame, const int bits, const int upsideDown, const int padding=1)
 create true color (24/32 bit) bitmap for MS Windows.
unsigned long createAWTBitmap (void *&data, const unsigned long frame, const int bits)
 create true color (32 bit) bitmap for Java (AWT default format).
int writeImageToDataset (DcmItem &dataset, const int mode, const int planar)
 write current image and related attributes to DICOM dataset.
int writePPM (STD_NAMESPACE ostream &stream, const unsigned long frame, const int bits)
 write pixel data to PPM file.
int writePPM (FILE *stream, const unsigned long frame, const int bits)
 write pixel data to PPM file.
int writeRawPPM (FILE *stream, const unsigned long frame, const int bits)
 write pixel data to raw PPM file
int writeBMP (FILE *stream, const unsigned long frame, const int bits)
 write pixel data to BMP file

Protected Member Functions

 DiColorImage (const DiColorImage *image, const unsigned long fstart, const unsigned long fcount)
 constructor, copy
 DiColorImage (const DiColorImage *image, const signed long left_pos, const signed long top_pos, const Uint16 src_cols, const Uint16 src_rows, const Uint16 dest_cols, const Uint16 dest_rows, const int interpolate=0, const int aspect=0)
 constructor, scale/clip
 DiColorImage (const DiColorImage *image, const int horz, const int vert)
 constructor, flip
 DiColorImage (const DiColorImage *image, const int degree)
 constructor, rotate
int checkInterData (const int mode=1)
 check intermediate pixel representation for consistency
const void * getData (void *buffer, const unsigned long size, const unsigned long frame, const int bits, const int planar)
 get pixel data with specified format.
virtual void updateImagePixelModuleAttributes (DcmItem &dataset)
 update Image Pixel Module attributes in the given dataset.

Protected Attributes

const OFBool RGBColorModel
 flag, indicating whether the intermediate representation uses the RGB color model
DiColorPixelInterData
 points to intermediate pixel data representation (object)

Private Member Functions

 DiColorImage (const DiColorImage &)
DiColorImageoperator= (const DiColorImage &)

Private Attributes

DiColorOutputPixelOutputData
 points to current output data (object)

Detailed Description

Base class for color images.

Definition at line 52 of file dicoimg.h.


Constructor & Destructor Documentation

DiColorImage::DiColorImage ( const DiDocument docu,
const EI_Status  status,
const int  spp,
const OFBool  rgb = OFTrue 
)

constructor

Parameters:
docu pointer to the DICOM document
status status of the image object
spp sample per pixel (1, 3 or 4 depending on the color model)
rgb specifies whether internal image representation is in RGB format

DiColorImage::DiColorImage ( const DiColorImage image,
const unsigned long  fstart,
const unsigned long  fcount 
) [protected]

constructor, copy

Parameters:
image pointer to reference image
fstart first frame to be processed
fcount number of frames

DiColorImage::DiColorImage ( const DiColorImage image,
const signed long  left_pos,
const signed long  top_pos,
const Uint16  src_cols,
const Uint16  src_rows,
const Uint16  dest_cols,
const Uint16  dest_rows,
const int  interpolate = 0,
const int  aspect = 0 
) [protected]

constructor, scale/clip

Parameters:
image pointer to reference image
left_pos x coordinate of top left corner of area to be scaled (referring to image origin, negative values create a border around the image)
top_pos y coordinate of top left corner of area to be scaled
src_cols width of area to be scaled
src_rows height of area to be scaled
dest_cols width of scaled image (in pixels)
dest_rows height of scaled image (in pixels)
interpolate specifies whether scaling algorithm should use interpolation (if necessary). default: no interpolation (0), preferred interpolation algorithm (if applicable): 1 = pbmplus algorithm, 2 = c't algorithm, 3 = bilinear magnification, 4 = bicubic magnification
aspect specifies whether pixel aspect ratio should be taken into consideration (if true, width OR height should be 0, i.e. this component will be calculated automatically)

DiColorImage::DiColorImage ( const DiColorImage image,
const int  horz,
const int  vert 
) [protected]

constructor, flip

Parameters:
image pointer to reference image
horz flip horizontally if true
vert flip vertically if true

DiColorImage::DiColorImage ( const DiColorImage image,
const int  degree 
) [protected]

constructor, rotate

Parameters:
image pointer to reference image
degree angle by which the image shall be rotated


Member Function Documentation

virtual EP_Interpretation DiColorImage::getInternalColorModel (  )  const [inline, virtual]

get color model of internal pixel representation.

Returns:
returns EPI_RGB or EPI_YBR_Full depending on the 'rgb' flag in the constructor

Implements DiImage.

Definition at line 78 of file dicoimg.h.

References RGBColorModel.

virtual unsigned long DiColorImage::getOutputDataSize ( const int  bits = 0  )  const [virtual]

get number of bytes required for the rendered output of a single frame

Parameters:
bits number of bits for the output pixel data (depth)
Returns:
number of bytes if successful, 0 otherwise

Implements DiImage.

const void* DiColorImage::getOutputData ( const unsigned long  frame,
const int  bits,
const int  planar = 0 
) [virtual]

get pixel data with specified format.

(memory is handled internally) The standard color model of the pixel data is RGB, but if the flag "rgb" is OFFalse and the original color model was YCbCr_Full or YCbCr_Full_422 YCbCr_Full is used instead.

Parameters:
frame number of frame to be rendered
bits number of bits per sample for the output pixel data (depth)
planar 0 = color-by-pixel (R1G1B1...R2G2B2...R3G3B3...), 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...)
Returns:
untyped pointer to the pixel data if successful, NULL otherwise

Implements DiImage.

int DiColorImage::getOutputData ( void *  buffer,
const unsigned long  size,
const unsigned long  frame,
const int  bits,
const int  planar = 0 
) [virtual]

get pixel data with specified format.

(memory is handled externally) The standard color model of the pixel data is RGB, but if the flag "rgb" is OFFalse and the original color model was YCbCr_Full or YCbCr_Full_422 YCbCr_Full is used instead.

Parameters:
buffer untyped pointer to the externally allocated memory buffer
size size of the memory buffer in bytes (will be checked)
frame number of frame to be rendered
bits number of bits per sample for the output pixel data (depth)
planar 0 = color-by-pixel (R1G1B1...R2G2B2...R3G3B3...) 1 = color-by-plane (R1R2R3...G1G2G3...B1B2B3...)
Returns:
status, true if successful, false otherwise

Implements DiImage.

const void* DiColorImage::getOutputPlane ( const int  plane  )  const [virtual]

get pixel data of specified plane.

(memory is handled internally)

Parameters:
plane index of color plane
Returns:
untyped pointer to the pixel data if successful, NULL otherwise

Implements DiImage.

DiImage* DiColorImage::createImage ( const unsigned long  fstart,
const unsigned long  fcount 
) const [virtual]

create copy of current image object

Parameters:
fstart first frame to be processed
fcount number of frames
Returns:
pointer to new DicomImage object (NULL if an error occurred)

Implements DiImage.

DiImage* DiColorImage::createScale ( const signed long  left_pos,
const signed long  top_pos,
const unsigned long  src_cols,
const unsigned long  src_rows,
const unsigned long  dest_cols,
const unsigned long  dest_rows,
const int  interpolate,
const int  aspect,
const Uint16  pvalue 
) const [virtual]

create scaled copy of specified (clipping) area of the current image object.

Parameters:
left_pos x coordinate of top left corner of area to be scaled (referring to image origin, negative values create a border around the image)
top_pos y coordinate of top left corner of area to be scaled
src_cols width of area to be scaled
src_rows height of area to be scaled
dest_cols width of scaled image (in pixels)
dest_rows height of scaled image (in pixels)
interpolate specifies whether scaling algorithm should use interpolation (if necessary). default: no interpolation (0), preferred interpolation algorithm (if applicable): 1 = pbmplus algorithm, 2 = c't algorithm, 3 = bilinear magnification, 4 = bicubic magnification
aspect specifies whether pixel aspect ratio should be taken into consideration (if true, width OR height should be 0, i.e. this component will be calculated automatically)
pvalue dummy parameter (only used for monochrome images)
Returns:
pointer to new DiImage object (NULL if an error occurred)

Implements DiImage.

int DiColorImage::flip ( const int  horz,
const int  vert 
) [virtual]

flip current image (horizontally and/or vertically)

Parameters:
horz flip horizontally if true
vert flip vertically if true
Returns:
true if successful (1 = flipped at least direction, 2 = not flipped, because of image resolution - width and/or height equal to 1), false otherwise

Implements DiImage.

DiImage* DiColorImage::createFlip ( const int  horz,
const int  vert 
) const [virtual]

create a flipped copy of the current image

Parameters:
horz flip horizontally if true
vert flip vertically if true
Returns:
pointer to new DiImage object (NULL if an error occurred)

Implements DiImage.

int DiColorImage::rotate ( const int  degree  )  [virtual]

rotate current image (by steps of 90 degrees)

Parameters:
degree angle by which the image shall be rotated (-360, -270, -180, -90, 0, 90, 180, 270, 360)
Returns:
true if successful (1 = rotated by at least 90 degrees, 2 = not rotated, because of image resolution or angle), false otherwise

Reimplemented from DiImage.

DiImage* DiColorImage::createRotate ( const int  degree  )  const [virtual]

create a rotated copy of the current image.

Parameters:
degree angle by which the image shall be rotated
Returns:
pointer to new DiImage object (NULL if an error occurred)

Implements DiImage.

DiImage* DiColorImage::createMono ( const double  red,
const double  green,
const double  blue 
) const [virtual]

create monochrome copy of the current image

Parameters:
red coefficient by which the red component is weighted
green coefficient by which the green component is weighted
blue coefficient by which the blue component is weighted
Returns:
pointer to new DiImage object (NULL if an error occurred)

Implements DiImage.

const DiPixel* DiColorImage::getInterData (  )  const [inline, virtual]

get pointer to intermediate pixel data representation

Returns:
pointer to intermediate pixel data

Implements DiImage.

Definition at line 237 of file dicoimg.h.

References InterData.

const DiColorPixel* DiColorImage::getColorInterData (  )  const [inline]

get pointer to intermediate pixel data representation

Returns:
pointer to intermediate pixel data

Definition at line 246 of file dicoimg.h.

References InterData.

unsigned long DiColorImage::createDIB ( void *&  data,
const unsigned long  size,
const unsigned long  frame,
const int  bits,
const int  upsideDown,
const int  padding = 1 
) [virtual]

create true color (24/32 bit) bitmap for MS Windows.

memory is not handled internally - must be deleted from calling program.

Parameters:
data untyped pointer memory buffer (set to NULL if not allocated externally)
size size of the memory buffer in bytes (if 0 'data' is set to NULL)
frame index of frame to be converted (starting from 0)
bits number of bits per pixel used for the output bitmap (24 or 32)
upsideDown specifies the order of lines in the images (0 = top-down, bottom-up otherwise)
padding align each line to a 32-bit address if true (default)
Returns:
number of bytes allocated by the bitmap, or 0 if an error occured

Implements DiImage.

unsigned long DiColorImage::createAWTBitmap ( void *&  data,
const unsigned long  frame,
const int  bits 
) [virtual]

create true color (32 bit) bitmap for Java (AWT default format).

Memory is not handled internally - must be deleted from calling program.

Parameters:
data resulting pointer to bitmap data (set to NULL if an error occurred)
frame index of frame to be converted (default: first frame)
bits number of bits per pixel used for the output bitmap (32)
Returns:
number of bytes allocated by the bitmap, or 0 if an error occured

Implements DiImage.

int DiColorImage::writeImageToDataset ( DcmItem dataset,
const int  mode,
const int  planar 
) [virtual]

write current image and related attributes to DICOM dataset.

Parameters:
dataset reference to DICOM dataset where the image attributes are stored
mode dummy parameter (only used for monochrome images)
planar flag, whether the output data (for multi-planar images) should be planar or not
Returns:
true if successful, false otherwise

Implements DiImage.

int DiColorImage::writePPM ( STD_NAMESPACE ostream &  stream,
const unsigned long  frame,
const int  bits 
) [virtual]

write pixel data to PPM file.

pixel data is written in ASCII format.

Parameters:
stream open C++ output stream
frame index of frame used for output
bits number of bits used for output of pixel data
Returns:
true if successful, false otherwise

Implements DiImage.

int DiColorImage::writePPM ( FILE *  stream,
const unsigned long  frame,
const int  bits 
) [virtual]

write pixel data to PPM file.

pixel data is written in ASCII format.

Parameters:
stream open C output stream
frame index of frame used for output
bits number of bits used for output of pixel data
Returns:
true if successful, false otherwise

Implements DiImage.

int DiColorImage::writeRawPPM ( FILE *  stream,
const unsigned long  frame,
const int  bits 
) [virtual]

write pixel data to raw PPM file

Parameters:
stream open C output stream
frame index of frame used for output
bits number of bits used for output of pixel data
Returns:
true if successful, false otherwise

Implements DiImage.

int DiColorImage::writeBMP ( FILE *  stream,
const unsigned long  frame,
const int  bits 
) [virtual]

write pixel data to BMP file

Parameters:
stream open C output stream
frame index of frame used for output (default: first frame = 0)
bits number of bits used for output of pixel data (24 or 32, default (0) = 24)
Returns:
true if successful, false otherwise

Reimplemented from DiImage.

int DiColorImage::checkInterData ( const int  mode = 1  )  [protected]

check intermediate pixel representation for consistency

Parameters:
mode check number of pixels stored in the dataset if true

const void* DiColorImage::getData ( void *  buffer,
const unsigned long  size,
const unsigned long  frame,
const int  bits,
const int  planar 
) [protected]

get pixel data with specified format.

(memory is handled externally)

Parameters:
buffer untyped pointer to the externally allocated memory buffer
size size of the memory buffer in bytes (will be checked)
frame number of frame to be rendered
bits number of bits for the output pixel data (depth)
planar flag, 0 = color-by-pixel and 1 = color-by-plane
Returns:
untyped pointer to the pixel data if successful, NULL otherwise

virtual void DiColorImage::updateImagePixelModuleAttributes ( DcmItem dataset  )  [protected, virtual]

update Image Pixel Module attributes in the given dataset.

Removes color palette lookup tables. Used in writeXXXToDataset() routines.

Parameters:
dataset reference to DICOM image dataset

Reimplemented from DiImage.


The documentation for this class was generated from the following file:


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1