#ifndef LIBALMOND_IMAGEEXPORT_H #define LIBALMOND_IMAGEEXPORT_H #include "Mandel.h" #include "Gradient.h" #include #include #include namespace alm { enum class ImageFormat { BMP, PNG, JPEG }; bool supportsImageFormat(ImageFormat imgf); struct ImageOptions { int jpegQuality = 80; }; struct ImageExportInfo { mnd::MandelInfo drawInfo; mnd::MandelGenerator* generator; Gradient gradient; ImageOptions options; std::string path; }; struct ImageExportException : std::runtime_error { ImageExportException(const std::string& err); }; /// /// \brief generates and saves a fractal image. The format /// will be guessed by the file extension /// /// \param iei info to generate the image /// \param progressCallback optional function that is called to /// report progress; the float parameter /// contains a value from 0 to 100 /// void exportImage(const ImageExportInfo& iei, std::function progressCallback = [](float){}, std::function cancelCallback = [](void){ return false; } ); } #endif // LIBALMOND_IMAGEEXPORT_H