X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fimagefile.h;fp=include%2Fimagefile.h;h=63a02bcc6007422f6083ce3f004edafd44dc9e11;hp=1062828f7445e0e17f59b199f38123cac10b55a2;hb=c358b8c8b5649f14e2b8203b999ba8549a244727;hpb=c953cbb6ffc2fd50e736230f4e6976a025983cff diff --git a/include/imagefile.h b/include/imagefile.h index 1062828..63a02bc 100644 --- a/include/imagefile.h +++ b/include/imagefile.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: imagefile.h,v 1.31 2001/01/28 19:10:18 kevin Exp $ +** $Id: imagefile.h,v 1.32 2001/03/01 20:02:18 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -118,30 +118,54 @@ typedef const kfloat32* ImageFileColumnConst; #endif + class ImageFile : public ImageFileBase { private: - static const char* s_aszFormatName[]; - static const char* s_aszFormatTitle[]; - static const int s_iFormatCount; + static const char* s_aszExportFormatName[]; + static const char* s_aszExportFormatTitle[]; + static const int s_iExportFormatCount; + static const char* s_aszImportFormatName[]; + static const char* s_aszImportFormatTitle[]; + static const int s_iImportFormatCount; + + static void skipSpacePPM (FILE* fp); // skip space in a ppm file public: - static const int FORMAT_INVALID; - static const int FORMAT_PGM; - static const int FORMAT_PGMASCII; + static const int EXPORT_FORMAT_INVALID; + static const int IMPORT_FORMAT_INVALID; + static const int EXPORT_FORMAT_PGM; + static const int EXPORT_FORMAT_PGMASCII; + static const int IMPORT_FORMAT_PPM; #if HAVE_PNG - static const int FORMAT_PNG; - static const int FORMAT_PNG16; + static const int EXPORT_FORMAT_PNG; + static const int EXPORT_FORMAT_PNG16; + static const int IMPORT_FORMAT_PNG; #endif +#if HAVE_CTN_DICOM + static const int EXPORT_FORMAT_DICOM; + static const int IMPORT_FORMAT_DICOM; +#endif + + static const int getExportFormatCount() {return s_iExportFormatCount;} + static const char** getExportFormatNameArray() {return s_aszExportFormatName;} + static const char** getExportFormatTitleArray() {return s_aszExportFormatTitle;} + static int convertExportFormatNameToID (const char* const ExportFormatName); + static const char* convertExportFormatIDToName (const int ExportFormatID); + static const char* convertExportFormatIDToTitle (const int ExportFormatID); - static const int getFormatCount() {return s_iFormatCount;} - static const char** getFormatNameArray() {return s_aszFormatName;} - static const char** getFormatTitleArray() {return s_aszFormatTitle;} - static int convertFormatNameToID (const char* const formatName); - static const char* convertFormatIDToName (const int formatID); - static const char* convertFormatIDToTitle (const int formatID); + static const int getImportFormatCount() {return s_iImportFormatCount;} + static const char** getImportFormatNameArray() {return s_aszImportFormatName;} + static const char** getImportFormatTitleArray() {return s_aszImportFormatTitle;} + static int convertImportFormatNameToID (const char* const ImportFormatName); + static const char* convertImportFormatIDToName (const int ImportFormatID); + static const char* convertImportFormatIDToTitle (const int ImportFormatID); + + static const double s_dRedGrayscaleFactor; + static const double s_dGreenGrayscaleFactor; + static const double s_dBlueGrayscaleFactor; ImageFile (int nx, int ny) : ImageFileBase (nx, ny) @@ -195,14 +219,27 @@ public: bool exportImage (const char* const pszFormat, const char* const pszFilename, int nxcell, int nycell, double densmin, double densmax); + bool importImage (const char* const pszFormat, const char* const pszFilename); + #if HAVE_PNG bool writeImagePNG (const char* const outfile, int bitdepth, int nxcell, int nycell, double densmin, double densmax); + bool readImagePNG (const char* const pszFile); #endif #if HAVE_GD bool writeImageGIF (const char* const outfile, int nxcell, int nycell, double densmin, double densmax); #endif bool writeImagePGM (const char* const outfile, int nxcell, int nycell, double densmin, double densmax); bool writeImagePGMASCII (const char* const outfile, int nxcell, int nycell, double densmin, double densmax); + bool readImagePPM (const char* const pszFile); +#if HAVE_CTN_DICOM + bool readImageDicom (const char* const pszFile); +#endif + + static double redGrayscaleFactor() {return s_dRedGrayscaleFactor;} + static double greenGrayscaleFactor() {return s_dGreenGrayscaleFactor;} + static double blueGrayscaleFactor() {return s_dBlueGrayscaleFactor;} + static double colorToGrayscale (double r, double g, double b) + { return r * s_dRedGrayscaleFactor + g * s_dGreenGrayscaleFactor + b * s_dBlueGrayscaleFactor; } };