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 97 of file STBImageWriter.cpp.

101{
102 m_last_error.clear();
103
104 if (!data.is_consistent()) {
105 m_last_error = "ImageData variant does not match declared ImageFormat";
107 return false;
108 }
109
110 if (data.width == 0 || data.height == 0 || data.channels == 0) {
111 m_last_error = "ImageData has zero dimensions";
113 return false;
114 }
115
116 const auto ext = extension_of(filepath);
117
118 if (ext == "png")
119 return write_png(filepath, data, options);
120 if (ext == "jpg" || ext == "jpeg")
121 return write_jpg(filepath, data, options);
122 if (ext == "bmp")
123 return write_bmp(filepath, data);
124 if (ext == "tga")
125 return write_tga(filepath, data);
126 if (ext == "hdr")
127 return write_hdr(filepath, data);
128
129 m_last_error = "Unsupported extension: " + ext;
131 return false;
132}
#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: