MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ write()

bool MayaFlux::IO::STBImageWriter::write ( const std::string &  filepath,
const ImageData data,
const ImageWriteOptions options = {} 
)
overridevirtual

Write image data to disk.

Parameters
filepathDestination path.
dataImage data. Must satisfy ImageData::is_consistent().
optionsFormat-specific options.
Returns
true on success. On failure call get_last_error().

Implements MayaFlux::IO::ImageWriter.

Definition at line 94 of file STBImageWriter.cpp.

98{
99 m_last_error.clear();
100
101 if (!data.is_consistent()) {
102 m_last_error = "ImageData variant does not match declared ImageFormat";
104 return false;
105 }
106
107 if (data.width == 0 || data.height == 0 || data.channels == 0) {
108 m_last_error = "ImageData has zero dimensions";
110 return false;
111 }
112
113 const auto ext = extension_of(filepath);
114
115 if (ext == "png")
116 return write_png(filepath, data, options);
117 if (ext == "jpg" || ext == "jpeg")
118 return write_jpg(filepath, data, options);
119 if (ext == "bmp")
120 return write_bmp(filepath, data);
121 if (ext == "tga")
122 return write_tga(filepath, data);
123 if (ext == "hdr")
124 return write_hdr(filepath, data);
125
126 m_last_error = "Unsupported extension: " + ext;
128 return false;
129}
#define MF_ERROR(comp, ctx,...)
bool write_bmp(const std::string &filepath, const ImageData &data)
bool write_jpg(const std::string &filepath, const ImageData &data, const ImageWriteOptions &options)
bool write_png(const std::string &filepath, const ImageData &data, const ImageWriteOptions &options)
bool write_tga(const std::string &filepath, const ImageData &data)
bool write_hdr(const std::string &filepath, const ImageData &data)
@ FileIO
Filesystem I/O operations.
@ IO
Networking, file handling, streaming.

References MayaFlux::IO::ImageData::channels, MayaFlux::Journal::FileIO, MayaFlux::IO::ImageData::height, MayaFlux::Journal::IO, MayaFlux::IO::ImageData::is_consistent(), m_last_error, MF_ERROR, MayaFlux::IO::ImageData::width, write_bmp(), write_hdr(), write_jpg(), write_png(), and write_tga().

+ Here is the call graph for this function: