📄 dicoimg.h
字号:
const int upsideDown, const int padding = 1); /** create true color (32 bit) bitmap for Java (AWT default format). * Memory is not handled internally - must be deleted from calling program. * ** @param data resulting pointer to bitmap data (set to NULL if an error occurred) * @param frame index of frame to be converted (default: first frame) * @param bits number of bits per pixel used for the output bitmap (32) * ** @return number of bytes allocated by the bitmap, or 0 if an error occured */ unsigned long createAWTBitmap(void *&data, const unsigned long frame, const int bits); /** write current image and related attributes to DICOM dataset. * ** @param dataset reference to DICOM dataset where the image attributes are stored * @param mode dummy parameter (only used for monochrome images) * ** @return true if successful, false otherwise */ int writeImageToDataset(DcmItem &dataset, const int mode); /** write pixel data to PPM file. * pixel data is written in ASCII format. * ** @param stream open C++ output stream * @param frame index of frame used for output * @param bits number of bits used for output of pixel data * ** @return true if successful, false otherwise */ int writePPM(ostream &stream, const unsigned long frame, const int bits); /** write pixel data to PPM file. * pixel data is written in ASCII format. * ** @param stream open C output stream * @param frame index of frame used for output * @param bits number of bits used for output of pixel data * ** @return true if successful, false otherwise */ int writePPM(FILE *stream, const unsigned long frame, const int bits); /** write pixel data to raw PPM file * ** @param stream open C output stream * @param frame index of frame used for output * @param bits number of bits used for output of pixel data * ** @return true if successful, false otherwise */ int writeRawPPM(FILE *stream, const unsigned long frame, const int bits); /** write pixel data to BMP file * ** @param stream open C output stream * @param frame index of frame used for output (default: first frame = 0) * @param bits number of bits used for output of pixel data (24, 0=default means 24) * ** @return true if successful, false otherwise */ int writeBMP(FILE *stream, const unsigned long frame, const int bits); protected: /** constructor, copy * ** @param image pointer to reference image * @param fstart first frame to be processed * @param fcount number of frames */ DiColorImage(const DiColorImage *image, const unsigned long fstart, const unsigned long fcount); /** constructor, scale/clip * ** @param image pointer to reference image * @param 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) * @param top_pos y coordinate of top left corner of area to be scaled * @param src_cols width of area to be scaled * @param src_rows height of area to be scaled * @param dest_cols width of scaled image (in pixels) * @param dest_rows height of scaled image (in pixels) * @param interpolate specifies whether scaling algorithm should use interpolation (if necessary) * default: no interpolation (0), 1 = pbmplus algorithm, 2 = c't algorithm * @param 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(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, flip * ** @param image pointer to reference image ** @param horz flip horizontally if true * @param vert flip vertically if true */ DiColorImage(const DiColorImage *image, const int horz, const int vert); /** constructor, rotate * ** @param image pointer to reference image * @param degree angle by which the image shall be rotated */ DiColorImage(const DiColorImage *image, const int degree); /** check intermediate pixel representation for consistency * ** @param mode check number of pixels stored in the dataset if true */ int checkInterData(const int mode = 1); /** get pixel data with specified format. * (memory is handled externally) * ** @param buffer untyped pointer to the externally allocated memory buffer * @param size size of the memory buffer in bytes (will be checked) * @param frame number of frame to be rendered * @param bits number of bits for the output pixel data (depth) * @param planar flag, 0 = color-by-pixel and 1 = color-by-plane * ** @return untyped pointer to the pixel data if successful, NULL otherwise */ const void *getData(void *buffer, const unsigned long size, const unsigned long frame, const int bits, const int planar); /** update Image Pixel Module attributes in the given dataset. * Removes color palette lookup tables. Used in writeXXXToDataset() routines. * ** @param dataset reference to DICOM image dataset */ virtual void updateImagePixelModuleAttributes(DcmItem &dataset); /// flag, indicating whether the intermediate representation uses the RGB color model const OFBool RGBColorModel; /// points to intermediate pixel data representation (object) DiColorPixel *InterData; private: /// points to current output data (object) DiColorOutputPixel *OutputData; // --- declarations to avoid compiler warnings DiColorImage(const DiColorImage &); DiColorImage &operator=(const DiColorImage &);};#endif/* * * CVS/RCS Log: * $Log: dicoimg.h,v $ * Revision 1.23 2005/12/08 16:01:30 meichel * Changed include path schema for all DCMTK header files * * Revision 1.22 2005/03/09 17:45:08 joergr * Added mode to writeImageToDataset() - only used for monochrome images. * * Revision 1.21 2004/07/20 18:13:16 joergr * Added API method to "officially" access the internal intermediate pixel data * representation (e.g. to get Hounsfield Units for CT images). * * Revision 1.20 2004/02/06 11:18:18 joergr * Distinguish more clearly between const and non-const access to pixel data. * * Revision 1.19 2003/12/17 18:10:56 joergr * Removed leading underscore characters from preprocessor symbols (reserved * symbols). * * Revision 1.18 2003/06/12 15:09:41 joergr * Fixed inconsistent API documentation reported by Doxygen. * * Revision 1.17 2003/05/20 09:26:05 joergr * Added method returning the number of bytes required to store a single * rendered frame: getOutputDataSize(). * * Revision 1.16 2002/12/09 13:37:51 joergr * Renamed parameter/local variable to avoid name clashes with global * declaration left and/or right (used for as iostream manipulators). * * Revision 1.15 2002/08/02 15:07:02 joergr * Added function to write the current image (not only a selected frame) to a * DICOM dataset. * * Revision 1.14 2002/01/29 17:07:07 joergr * Added optional flag to the "Windows DIB" methods allowing to switch off the * scanline padding. * * Revision 1.13 2001/11/27 18:22:17 joergr * Added support for plugable output formats in class DicomImage. First * implementation is JPEG. * * Revision 1.12 2001/11/09 16:38:36 joergr * Added support for Windows BMP file format. * Enhanced and renamed createTrueColorDIB() method. * Updated/Enhanced comments. * * Revision 1.11 2001/09/28 13:55:40 joergr * Added new flag (CIF_KeepYCbCrColorModel) which avoids conversion of YCbCr * color models to RGB. * * Revision 1.10 2001/06/01 15:49:28 meichel * Updated copyright header * * Revision 1.9 2000/03/08 16:21:50 meichel * Updated copyright header. * * Revision 1.8 1999/08/25 16:58:06 joergr * Added new feature: Allow clipping region to be outside the image * (overlapping). * * Revision 1.7 1999/04/28 12:51:57 joergr * Corrected some typos, comments and formatting. * * Revision 1.6 1999/01/20 14:39:52 joergr * Added new output method to fill external memory buffer with rendered pixel * data. * * Revision 1.5 1998/11/27 13:43:29 joergr * Added methods and constructors for flipping and rotating, changed for * scaling and clipping. * * Revision 1.4 1998/07/01 08:39:18 joergr * Minor changes to avoid compiler warnings (gcc 2.8.1 with additional * options), e.g. add copy constructors. * * Revision 1.3 1998/05/11 14:53:11 joergr * Added CVS/RCS header to each file. * * */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -