areaDetector 1-9
|
00001 /* 00002 * NDFileMagick.h 00003 * Writes NDArrays to any file format supported by ImageMagick 00004 * Mark Rivers 00005 * September 20, 2010 00006 */ 00007 00008 #ifndef DRV_NDFileMagick_H 00009 #define DRV_NDFileMagick_H 00010 00011 #include "NDPluginFile.h" 00012 #include "Magick++.h" 00013 using namespace Magick; 00014 using namespace std; 00015 00016 #define NDFileMagickQualityString "MAGICK_QUALITY" /* (asynInt32, r/w) File quality */ 00017 #define NDFileMagickCompressTypeString "MAGICK_COMPRESS_TYPE" /* (asynInt32, r/w) Compression type */ 00018 #define NDFileMagickBitDepthString "MAGICK_BIT_DEPTH" /* (asynInt32, r/w) Bit depth */ 00019 00020 class NDFileMagick : public NDPluginFile { 00021 public: 00022 NDFileMagick(const char *portName, int queueSize, int blockingCallbacks, 00023 const char *NDArrayPort, int NDArrayAddr, 00024 int priority, int stackSize); 00025 00026 /* The methods that this class implements */ 00027 virtual asynStatus openFile(const char *fileName, NDFileOpenMode_t openMode, NDArray *pArray); 00028 virtual asynStatus readFile(NDArray **pArray); 00029 virtual asynStatus writeFile(NDArray *pArray); 00030 virtual asynStatus closeFile(); 00031 00032 protected: 00033 int NDFileMagickQuality; 00034 #define FIRST_NDFILE_MAGICK_PARAM NDFileMagickQuality 00035 int NDFileMagickCompressType; 00036 int NDFileMagickBitDepth; 00037 #define LAST_NDFILE_MAGICK_PARAM NDFileMagickBitDepth 00038 00039 private: 00040 size_t sizeX; 00041 size_t sizeY; 00042 StorageType storageType; 00043 NDColorMode_t colorMode; 00044 ImageType imageType; 00045 string colorMap; 00046 Image image; 00047 char fileName[MAX_FILENAME_LEN]; 00048 }; 00049 #define NUM_NDFILE_MAGICK_PARAMS ((int)(&LAST_NDFILE_MAGICK_PARAM - &FIRST_NDFILE_MAGICK_PARAM + 1)) 00050 #endif