00001 /* 00002 * 00003 * Copyright (C) 2003-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: dcmimage 00019 * 00020 * Author: Alexander Haderer 00021 * 00022 * Purpose: Implements PNG interface for plugable image formats 00023 * 00024 * Last Update: $Author: meichel $ 00025 * Update Date: $Date: 2005/12/08 16:01:42 $ 00026 * CVS/RCS Revision: $Revision: 1.5 $ 00027 * Status: $State: Exp $ 00028 * 00029 * CVS/RCS Log at end of file 00030 * 00031 */ 00032 00033 00034 #ifndef DIPIPNG_H 00035 #define DIPIPNG_H 00036 00037 #include "dcmtk/config/osconfig.h" 00038 00039 #ifdef WITH_LIBPNG 00040 00041 #include "dcmtk/dcmimgle/diplugin.h" 00042 00043 00044 /*------------------------* 00045 * forward declarations * 00046 *------------------------*/ 00047 00048 class DiImage; 00049 00050 00051 /*--------------------* 00052 * type definitions * 00053 *--------------------*/ 00054 00059 enum DiPNGInterlace 00060 { 00062 E_pngInterlaceAdam7, 00063 00065 E_pngInterlaceNone 00066 }; 00067 00071 enum DiPNGMetainfo 00072 { 00074 E_pngNoMetainfo, 00075 00077 E_pngFileMetainfo 00078 }; 00079 00080 00081 /*---------------------* 00082 * class declaration * 00083 *---------------------*/ 00084 00087 class DiPNGPlugin 00088 : public DiPluginFormat 00089 { 00090 00091 public: 00092 00095 DiPNGPlugin(); 00096 00099 virtual ~DiPNGPlugin(); 00100 00107 virtual int write(DiImage *image, 00108 FILE *stream, 00109 const unsigned long frame = 0) const; 00110 00114 void setInterlaceType(DiPNGInterlace inter); 00115 00119 void setMetainfoType(DiPNGMetainfo minfo); 00120 00125 static OFString getLibraryVersionString(); 00126 00127 00128 private: 00129 00131 DiPNGInterlace interlaceType; 00132 00134 DiPNGMetainfo metainfoType; 00135 }; 00136 00137 #endif 00138 #endif 00139 00140 00141 /* 00142 * CVS/RCS Log: 00143 * $Log: dipipng.h,v $ 00144 * Revision 1.5 2005/12/08 16:01:42 meichel 00145 * Changed include path schema for all DCMTK header files 00146 * 00147 * Revision 1.4 2004/04/07 12:06:28 joergr 00148 * Removed comma at end of enumerator list. 00149 * 00150 * Revision 1.3 2003/12/23 12:09:24 joergr 00151 * Updated documentation to get rid of doxygen warnings. 00152 * 00153 * Revision 1.2 2003/12/17 18:18:08 joergr 00154 * Removed leading underscore characters from preprocessor symbols (reserved 00155 * symbols). 00156 * 00157 * Revision 1.1 2003/02/11 13:18:38 meichel 00158 * Added PNG export option to dcm2pnm and dcmj2pnm 00159 * 00160 * 00161 */