00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef DIMO2IMG_H
00031 #define DIMO2IMG_H
00032
00033 #include "dcmtk/config/osconfig.h"
00034
00035 #include "dcmtk/dcmimgle/dimoimg.h"
00036
00037
00038
00039
00040
00041
00044 class DiMono2Image
00045 : public DiMonoImage
00046 {
00047
00048 public:
00049
00055 DiMono2Image(const DiDocument *docu,
00056 const EI_Status status);
00057
00065 DiMono2Image(const DiDocument *docu,
00066 const EI_Status status,
00067 const double slope,
00068 const double intercept);
00069
00078 DiMono2Image(const DiDocument *docu,
00079 const EI_Status status,
00080 const DcmUnsignedShort &data,
00081 const DcmUnsignedShort &descriptor,
00082 const DcmLongString *explanation);
00083
00091 DiMono2Image(const DiColorImage *image,
00092 const double red,
00093 const double green,
00094 const double blue);
00095
00104 DiMono2Image(const DiMonoImage *image,
00105 DiMonoOutputPixel *pixel,
00106 const unsigned long frame,
00107 const int stored,
00108 const int alloc);
00109
00112 virtual ~DiMono2Image();
00113
00117 virtual EP_Interpretation getInternalColorModel() const
00118 {
00119 return EPI_Monochrome2;
00120 }
00121
00131 virtual const void *getOutputData(const unsigned long frame,
00132 const int bits,
00133 const int planar = 0);
00134
00146 virtual int getOutputData(void *buffer,
00147 const unsigned long size,
00148 const unsigned long frame,
00149 const int bits,
00150 const int planar = 0);
00151
00159 DiImage *createImage(const unsigned long fstart,
00160 const unsigned long fcount) const;
00161
00182 DiImage *createScale(const signed long left_pos,
00183 const signed long top_pos,
00184 const unsigned long clip_width,
00185 const unsigned long clip_height,
00186 const unsigned long scale_width,
00187 const unsigned long scale_height,
00188 const int interpolate,
00189 const int aspect,
00190 const Uint16 pvalue) const;
00191
00199 DiImage *createFlip(const int horz,
00200 const int vert) const;
00201
00208 DiImage *createRotate(const int degree) const;
00209
00219 DiImage *createMono(const double dummy1,
00220 const double dummy2,
00221 const double dummy3) const;
00222
00223
00224 protected:
00225
00232 DiMono2Image(const DiDocument *docu,
00233 const EI_Status status,
00234 const char dummy);
00235
00242 DiMono2Image(const DiMonoImage *image,
00243 const unsigned long fstart,
00244 const unsigned long fcount);
00245
00265 DiMono2Image(const DiMonoImage *image,
00266 const signed long left_pos,
00267 const signed long top_pos,
00268 const Uint16 src_cols,
00269 const Uint16 src_rows,
00270 const Uint16 dest_cols,
00271 const Uint16 dest_rows,
00272 const int interpolate = 0,
00273 const int aspect = 0,
00274 const Uint16 pvalue = 0);
00275
00282 DiMono2Image(const DiMonoImage *image,
00283 const int horz,
00284 const int vert);
00285
00291 DiMono2Image(const DiMonoImage *image,
00292 const int degree);
00293 };
00294
00295
00296 #endif
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371