00001 /* 00002 * 00003 * Copyright (C) 1996-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * 00014 * Module: dcmimgle 00015 * 00016 * Author: Joerg Riesmeier 00017 * 00018 * Purpose: DicomMonochrome1Image (Header) 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:16:26 $ 00022 * CVS/RCS Revision: $Revision: 1.17 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 00030 #ifndef DIMO1IMG_H 00031 #define DIMO1IMG_H 00032 00033 #include "dcmtk/config/osconfig.h" 00034 00035 #include "dcmtk/dcmimgle/dimoimg.h" 00036 00037 00038 /*---------------------* 00039 * class declaration * 00040 *---------------------*/ 00041 00044 class DiMono1Image 00045 : public DiMonoImage 00046 { 00047 00048 public: 00049 00055 DiMono1Image(const DiDocument *docu, 00056 const EI_Status status); 00057 00060 virtual ~DiMono1Image(); 00061 00065 virtual EP_Interpretation getInternalColorModel() const 00066 { 00067 return EPI_Monochrome1; 00068 } 00069 00079 virtual const void *getOutputData(const unsigned long frame, 00080 const int bits, 00081 const int planar = 0); 00082 00094 virtual int getOutputData(void *buffer, 00095 const unsigned long size, 00096 const unsigned long frame, 00097 const int bits, 00098 const int planar = 0); 00099 00107 DiImage *createImage(const unsigned long fstart, 00108 const unsigned long fcount) const; 00109 00130 DiImage *createScale(const signed long left_pos, 00131 const signed long top_pos, 00132 const unsigned long clip_width, 00133 const unsigned long clip_height, 00134 const unsigned long scale_width, 00135 const unsigned long scale_height, 00136 const int interpolate, 00137 const int aspect, 00138 const Uint16 pvalue) const; 00139 00147 DiImage *createFlip(const int horz, 00148 const int vert) const; 00149 00156 DiImage *createRotate(const int degree) const; 00157 00167 DiImage *createMono(const double dummy1, 00168 const double dummy2, 00169 const double dummy3) const; 00170 00171 00172 protected: 00173 00180 DiMono1Image(const DiMonoImage *image, 00181 const unsigned long fstart, 00182 const unsigned long fcount); 00183 00203 DiMono1Image(const DiMonoImage *image, 00204 const signed long left_pos, 00205 const signed long top_pos, 00206 const Uint16 src_cols, 00207 const Uint16 src_rows, 00208 const Uint16 dest_cols, 00209 const Uint16 dest_rows, 00210 const int interpolate = 0, 00211 const int aspect = 0, 00212 const Uint16 pvalue = 0); 00213 00220 DiMono1Image(const DiMonoImage *image, 00221 const int horz, 00222 const int vert); 00223 00229 DiMono1Image(const DiMonoImage *image, 00230 const int degree); 00231 }; 00232 00233 00234 #endif 00235 00236 00237 /* 00238 * 00239 * CVS/RCS Log: 00240 * $Log: dimo1img.h,v $ 00241 * Revision 1.17 2010-10-14 13:16:26 joergr 00242 * Updated copyright header. Added reference to COPYRIGHT file. 00243 * 00244 * Revision 1.16 2010-03-01 09:08:46 uli 00245 * Removed some unnecessary include directives in the headers. 00246 * 00247 * Revision 1.15 2008-05-20 10:03:53 joergr 00248 * Added new bilinear and bicubic scaling algorithms for image magnification. 00249 * 00250 * Revision 1.14 2005/12/08 16:47:46 meichel 00251 * Changed include path schema for all DCMTK header files 00252 * 00253 * Revision 1.13 2004/02/06 11:07:50 joergr 00254 * Distinguish more clearly between const and non-const access to pixel data. 00255 * 00256 * Revision 1.12 2003/12/08 18:25:12 joergr 00257 * Removed leading underscore characters from preprocessor symbols (reserved 00258 * symbols). Updated CVS header. 00259 * 00260 * Revision 1.11 2003/06/12 15:08:34 joergr 00261 * Fixed inconsistent API documentation reported by Doxygen. 00262 * 00263 * Revision 1.10 2002/12/09 13:32:51 joergr 00264 * Renamed parameter/local variable to avoid name clashes with global 00265 * declaration left and/or right (used for as iostream manipulators). 00266 * 00267 * Revision 1.9 2001/11/27 18:18:23 joergr 00268 * Added support for plugable output formats in class DicomImage. First 00269 * implementation is JPEG. 00270 * 00271 * Revision 1.8 2001/11/09 16:28:03 joergr 00272 * Updated comments. 00273 * 00274 * Revision 1.7 2001/06/01 15:49:43 meichel 00275 * Updated copyright header 00276 * 00277 * Revision 1.6 2000/03/08 16:24:17 meichel 00278 * Updated copyright header. 00279 * 00280 * Revision 1.5 1999/09/17 12:22:54 joergr 00281 * Added/changed/completed DOC++ style comments in the header files. 00282 * 00283 * Revision 1.4 1999/08/25 16:41:51 joergr 00284 * Added new feature: Allow clipping region to be outside the image 00285 * (overlapping). 00286 * 00287 * Revision 1.3 1999/03/24 17:20:05 joergr 00288 * Added/Modified comments and formatting. 00289 * 00290 * Revision 1.2 1999/01/20 15:03:19 joergr 00291 * Added new output method to fill external memory buffer with rendered pixel 00292 * data. 00293 * 00294 * Revision 1.1 1998/11/27 15:12:17 joergr 00295 * Added copyright message. 00296 * Added methods and constructors for flipping and rotating, changed for 00297 * scaling and clipping. 00298 * 00299 * Revision 1.2 1998/05/11 14:53:18 joergr 00300 * Added CVS/RCS header to each file. 00301 * 00302 * 00303 */