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 */