X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fimagefile.h;h=f300cdba9bc8d43990a88b495edf1652cef4d0b4;hp=aabb903bd2098cd78025a98e30e1c66d15ecf442;hb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac;hpb=23f5654dacb1952c15bda92c2606fae3a55e48ad diff --git a/include/imagefile.h b/include/imagefile.h index aabb903..f300cdb 100644 --- a/include/imagefile.h +++ b/include/imagefile.h @@ -7,9 +7,9 @@ ** Date Started: June 2000 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: imagefile.h,v 1.29 2001/01/04 21:28:41 kevin Exp $ +** $Id$ ** ** 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,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) @@ -182,23 +208,38 @@ public: #ifdef HAVE_FFTW bool fft (ImageFile& result) const; bool ifft (ImageFile& result) const; + bool fftRows (ImageFile& result) const; + bool ifftRows (ImageFile& result) const; + bool fftCols (ImageFile& result) const; + bool ifftCols (ImageFile& result) const; #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; } };