HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OiioImageLoader.h
Go to the documentation of this file.
1 //
2 // Copyright Contributors to the MaterialX Project
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 
6 #ifndef MATERIALX_OIIOIMAGELOADER_H
7 #define MATERIALX_OIIOIMAGELOADER_H
8 
9 /// @file
10 /// Image loader wrapper using OpenImageIO
11 
13 
15 
16 /// Shared pointer to an OiioImageLoader
17 using OiioImageLoaderPtr = std::shared_ptr<class OiioImageLoader>;
18 
19 /// @class OiioImageLoader
20 /// OpenImageIO image file loader
22 {
23  public:
25  {
26  // Set all extensions supported by OpenImageIO
27  _extensions.insert(BMP_EXTENSION);
28  _extensions.insert(GIF_EXTENSION);
29  _extensions.insert(HDR_EXTENSION);
30  _extensions.insert(JPG_EXTENSION);
31  _extensions.insert(JPEG_EXTENSION);
32  _extensions.insert(PIC_EXTENSION);
33  _extensions.insert(PNG_EXTENSION);
34  _extensions.insert(PSD_EXTENSION);
35  _extensions.insert(TGA_EXTENSION);
36  _extensions.insert(EXR_EXTENSION);
37  _extensions.insert(TIF_EXTENSION);
38  _extensions.insert(TIFF_EXTENSION);
39  _extensions.insert(TX_EXTENSION);
40  _extensions.insert(TXT_EXTENSION);
41  _extensions.insert(TXR_EXTENSION);
42  }
43  virtual ~OiioImageLoader() { }
44 
45  /// Create a new OpenImageIO image loader
46  static OiioImageLoaderPtr create() { return std::make_shared<OiioImageLoader>(); }
47 
48  /// Save an image to the file system.
49  bool saveImage(const FilePath& filePath,
51  bool verticalFlip = false) override;
52 
53  /// Load an image from the file system.
54  ImagePtr loadImage(const FilePath& filePath) override;
55 };
56 
58 
59 #endif
virtual bool saveImage(const FilePath &filePath, ConstImagePtr image, bool verticalFlip=false)
Definition: File.h:26
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
GLenum GLenum GLsizei void * image
Definition: glad.h:5132
#define MX_RENDER_API
Definition: Export.h:18
virtual ImagePtr loadImage(const FilePath &filePath)
virtual ~OiioImageLoader()
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26
static OiioImageLoaderPtr create()
Create a new OpenImageIO image loader.
shared_ptr< Image > ImagePtr
A shared pointer to an image.
Definition: Image.h:23
std::shared_ptr< class OiioImageLoader > OiioImageLoaderPtr
Shared pointer to an OiioImageLoader.
shared_ptr< const Image > ConstImagePtr
A shared pointer to a const image.
Definition: Image.h:26