eLynx SDK
v3.3.0 C++ image processing API reference |
00001 //============================================================================ 00002 // IImageFileFormat.h Image.Component package 00003 //============================================================================ 00004 // Usage : 00005 //---------------------------------------------------------------------------- 00006 // Inheritance : 00007 // IImageFileFormat 00008 //---------------------------------------------------------------------------- 00009 // Copyright (C) 2006 by eLynx project 00010 // 00011 // This library is free software; you can redistribute it and/or 00012 // modify it under the terms of the GNU Library General Public 00013 // License as published by the Free Software Foundation; either 00014 // version 2 of the License, or (at your option) any later version. 00015 // 00016 // This library is distributed in the hope that it will be useful, 00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00019 // See the GNU Library General Public License for more details. 00020 //---------------------------------------------------------------------------- 00021 #ifndef __IImageFileFormat_h__ 00022 #define __IImageFileFormat_h__ 00023 00024 #include "ImageFileInfo.h" 00025 #include "ImageFileOptions.h" 00026 00027 namespace eLynx { 00028 namespace Image { 00029 00033 class ExportedByImage IImageFileFormat 00034 { 00035 public: 00036 virtual ~IImageFileFormat(); 00037 00040 00043 virtual size_t GetInputExtCount() const = 0; 00044 00048 virtual const char * GetInputExt(size_t iIndex) const = 0; 00049 /* 00052 virtual size_t GetInputImageFormatCount() const = 0; 00053 00057 virtual EPixelFormat GetInputPixelFormat(size_t iIndex) const = 0; 00058 */ 00066 virtual bool IsSupported( 00067 const char * iprFilename, 00068 ImageFileInfo& oInfo, 00069 bool ibPreview=false) const = 0; 00070 00076 virtual bool GeneratePreview( 00077 const char * iprFilenameIn, 00078 const char * iprFilenameOut, 00079 ProgressNotifier& iNotifier) const = 0; 00080 00087 virtual bool Import( 00088 ImageVariant& oImage, 00089 const char * iprFilename, 00090 ImageFileInfo& oInfo, 00091 ProgressNotifier& iNotifier) = 0; 00093 00094 00097 00100 virtual size_t GetOutputExtCount() const = 0; 00101 00105 virtual const char * GetOutputExt(size_t iIndex) const = 0; 00106 00109 virtual size_t GetOutputImageFormatCount() const = 0; 00110 00114 virtual EPixelFormat GetOutputPixelFormat(size_t iIndex) const = 0; 00115 00122 virtual bool Export( 00123 const ImageVariant& iImage, 00124 const char * iprFilename, 00125 ProgressNotifier& iNotifier, 00126 const ImageFileOptions * iprOptions=NULL) = 0; 00128 }; 00129 00130 } // namespace Image 00131 } // namespace eLynx 00132 00133 #endif // __IImageFileFormat_h__