X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fimagefile.h;h=a5dfd3af54a9225bb0c205a59988c03f52bd0e32;hp=1062828f7445e0e17f59b199f38123cac10b55a2;hb=f13a8c004b8f182b42d9e4df2bcd7c7f030bf1ad;hpb=9f29c8b32c972db1178d6f8551d5cd57ceb67083 diff --git a/include/imagefile.h b/include/imagefile.h index 1062828..a5dfd3a 100644 --- a/include/imagefile.h +++ b/include/imagefile.h @@ -1,15 +1,13 @@ /***************************************************************************** ** FILE IDENTIFICATION ** -** Name: imagefile.h +** Name: imagefile.h ** Purpose: imagefile class header -** Programmer: Kevin Rosenberg -** Date Started: June 2000 +** Programmer: Kevin Rosenberg +** Date Started: June 2000 ** ** 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 $ +** Copyright (c) 1983-2009 Kevin Rosenberg ** ** 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 @@ -46,7 +44,7 @@ class F32Image : public Array2dFile { public: - F32Image (int nx, int ny, int dataType = Array2dFile::DATA_TYPE_REAL); + F32Image (int nx, int ny, int dataType = Array2dFile::DATA_TYPE_REAL); F32Image (void); kfloat32** getArray (void) @@ -118,30 +116,56 @@ 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_TEXT; + 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 - - 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); +#if HAVE_CTN_DICOM + static const int EXPORT_FORMAT_DICOM; + static const int IMPORT_FORMAT_DICOM; +#endif + static const int EXPORT_FORMAT_RAW; + + 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 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) @@ -189,20 +213,31 @@ public: #endif bool magnitude (ImageFile& result) const; bool phase (ImageFile& result) const; - - int display (void) const; - int displayScaling (const int scaleFactor, ImageFileValue pmin, ImageFileValue pmax) const; + bool real (ImageFile& result) const; + bool imaginary (ImageFile& result) const; bool exportImage (const char* const pszFormat, const char* const pszFilename, int nxcell, int nycell, double densmin, double densmax); -#if HAVE_PNG + bool importImage (const char* const pszFormat, const char* const pszFilename); + +#ifdef 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 +#ifdef 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); + bool writeImageRaw(const char* const outfile, int nxcell, int nycell); + bool writeImageText (const char* const outfile); + + 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; } };