dimo1img.h

00001 /*
00002  *
00003  *  Copyright (C) 1996-2005, OFFIS
00004  *
00005  *  This software and supporting documentation were developed by
00006  *
00007  *    Kuratorium OFFIS e.V.
00008  *    Healthcare Information and Communication Systems
00009  *    Escherweg 2
00010  *    D-26121 Oldenburg, Germany
00011  *
00012  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
00013  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
00014  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
00015  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
00016  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
00017  *
00018  *  Module:  dcmimgle
00019  *
00020  *  Author:  Joerg Riesmeier
00021  *
00022  *  Purpose: DicomMonochrome1Image (Header)
00023  *
00024  *  Last Update:      $Author: meichel $
00025  *  Update Date:      $Date: 2005/12/08 16:47:46 $
00026  *  CVS/RCS Revision: $Revision: 1.14 $
00027  *  Status:           $State: Exp $
00028  *
00029  *  CVS/RCS Log at end of file
00030  *
00031  */
00032 
00033 
00034 #ifndef DIMO1IMG_H
00035 #define DIMO1IMG_H
00036 
00037 #include "dcmtk/config/osconfig.h"
00038 #include "dcmtk/dcmdata/dctypes.h"
00039 
00040 #include "dcmtk/dcmimgle/dimoimg.h"
00041 
00042 
00043 /*---------------------*
00044  *  class declaration  *
00045  *---------------------*/
00046 
00049 class DiMono1Image
00050   : public DiMonoImage
00051 {
00052 
00053  public:
00054 
00060     DiMono1Image(const DiDocument *docu,
00061                  const EI_Status status);
00062 
00065     virtual ~DiMono1Image();
00066 
00070     virtual EP_Interpretation getInternalColorModel() const
00071     {
00072         return EPI_Monochrome1;
00073     }
00074 
00084     virtual const void *getOutputData(const unsigned long frame,
00085                                       const int bits,
00086                                       const int planar = 0);
00087 
00099     virtual int getOutputData(void *buffer,
00100                               const unsigned long size,
00101                               const unsigned long frame,
00102                               const int bits,
00103                               const int planar = 0);
00104 
00112     DiImage *createImage(const unsigned long fstart,
00113                          const unsigned long fcount) const;
00114 
00133     DiImage *createScale(const signed long left_pos,
00134                          const signed long top_pos,
00135                          const unsigned long clip_width,
00136                          const unsigned long clip_height,
00137                          const unsigned long scale_width,
00138                          const unsigned long scale_height,
00139                          const int interpolate,
00140                          const int aspect,
00141                          const Uint16 pvalue) const;
00142 
00150     DiImage *createFlip(const int horz,
00151                         const int vert) const;
00152 
00159     DiImage *createRotate(const int degree) const;
00160 
00170     DiImage *createMono(const double dummy1,
00171                         const double dummy2,
00172                         const double dummy3) const;
00173 
00174 
00175  protected:
00176 
00183     DiMono1Image(const DiMonoImage *image,
00184                  const unsigned long fstart,
00185                  const unsigned long fcount);
00186 
00204     DiMono1Image(const DiMonoImage *image,
00205                  const signed long left_pos,
00206                  const signed long top_pos,
00207                  const Uint16 src_cols,
00208                  const Uint16 src_rows,
00209                  const Uint16 dest_cols,
00210                  const Uint16 dest_rows,
00211                  const int interpolate = 0,
00212                  const int aspect = 0,
00213                  const Uint16 pvalue = 0);
00214 
00221     DiMono1Image(const DiMonoImage *image,
00222                  const int horz,
00223                  const int vert);
00224 
00230     DiMono1Image(const DiMonoImage *image,
00231                  const int degree);
00232 };
00233 
00234 
00235 #endif
00236 
00237 
00238 /*
00239  *
00240  * CVS/RCS Log:
00241  * $Log: dimo1img.h,v $
00242  * Revision 1.14  2005/12/08 16:47:46  meichel
00243  * Changed include path schema for all DCMTK header files
00244  *
00245  * Revision 1.13  2004/02/06 11:07:50  joergr
00246  * Distinguish more clearly between const and non-const access to pixel data.
00247  *
00248  * Revision 1.12  2003/12/08 18:25:12  joergr
00249  * Removed leading underscore characters from preprocessor symbols (reserved
00250  * symbols). Updated CVS header.
00251  *
00252  * Revision 1.11  2003/06/12 15:08:34  joergr
00253  * Fixed inconsistent API documentation reported by Doxygen.
00254  *
00255  * Revision 1.10  2002/12/09 13:32:51  joergr
00256  * Renamed parameter/local variable to avoid name clashes with global
00257  * declaration left and/or right (used for as iostream manipulators).
00258  *
00259  * Revision 1.9  2001/11/27 18:18:23  joergr
00260  * Added support for plugable output formats in class DicomImage. First
00261  * implementation is JPEG.
00262  *
00263  * Revision 1.8  2001/11/09 16:28:03  joergr
00264  * Updated comments.
00265  *
00266  * Revision 1.7  2001/06/01 15:49:43  meichel
00267  * Updated copyright header
00268  *
00269  * Revision 1.6  2000/03/08 16:24:17  meichel
00270  * Updated copyright header.
00271  *
00272  * Revision 1.5  1999/09/17 12:22:54  joergr
00273  * Added/changed/completed DOC++ style comments in the header files.
00274  *
00275  * Revision 1.4  1999/08/25 16:41:51  joergr
00276  * Added new feature: Allow clipping region to be outside the image
00277  * (overlapping).
00278  *
00279  * Revision 1.3  1999/03/24 17:20:05  joergr
00280  * Added/Modified comments and formatting.
00281  *
00282  * Revision 1.2  1999/01/20 15:03:19  joergr
00283  * Added new output method to fill external memory buffer with rendered pixel
00284  * data.
00285  *
00286  * Revision 1.1  1998/11/27 15:12:17  joergr
00287  * Added copyright message.
00288  * Added methods and constructors for flipping and rotating, changed for
00289  * scaling and clipping.
00290  *
00291  * Revision 1.2  1998/05/11 14:53:18  joergr
00292  * Added CVS/RCS header to each file.
00293  *
00294  *
00295  */


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5