diff --git a/doc/snippets/MagnumTrade.cpp b/doc/snippets/MagnumTrade.cpp index b0d3b9be3..2939a1c8f 100644 --- a/doc/snippets/MagnumTrade.cpp +++ b/doc/snippets/MagnumTrade.cpp @@ -90,6 +90,21 @@ if(!converter || !converter->convertToFile(image, "image.png")) /* [AbstractImageConverter-usage-file] */ } +{ +/* [AbstractImageConverter-usage-file-levels] */ +PluginManager::Manager manager; +Containers::Pointer converter = + manager.loadAndInstantiate("AnyImageConverter"); + +Image2D level0{PixelFormat::RGBA16F, {256, 256}, DOXYGEN_IGNORE({})}; +Image2D level1{PixelFormat::RGBA16F, {128, 128}, DOXYGEN_IGNORE({})}; +Image2D level2{PixelFormat::RGBA16F, {64, 64}, DOXYGEN_IGNORE({})}; + +if(!converter || !converter->convertToFile({level0, level1, level2}, "image.exr")) + Fatal{} << "Can't save image.exr with AnyImageConverter"; +/* [AbstractImageConverter-usage-file-levels] */ +} + { Image2D image{{}, {}, {}}; /* [AbstractImageConverter-usage-image] */ diff --git a/src/Magnum/Trade/AbstractImageConverter.h b/src/Magnum/Trade/AbstractImageConverter.h index cf6aa55ad..e056e5e91 100644 --- a/src/Magnum/Trade/AbstractImageConverter.h +++ b/src/Magnum/Trade/AbstractImageConverter.h @@ -495,6 +495,18 @@ image converter plugins. exposing functionality of all image converter plugins on a command line as well as performing introspection of image files. +@subsection Trade-AbstractImageConverter-usage-file-levels Saving a set of mip levels + +Certain file formats, such as OpenEXR, DDS or ICO, are capable of storing +multiple image mip levels in a single file. Each format has a slightly +different set of rules for image sizes and their order, in general putting the +largest level first and then gradually halving the size should always work. In +the following snippet we'll save three mip levels to an EXR file, again using +the @ref AnyImageConverter plugin, which will then most likely delegate to +@link OpenExrImageConverter @endlink: + +@snippet MagnumTrade.cpp AbstractImageConverter-usage-file-levels + @subsection Trade-AbstractImageConverter-usage-image Converting image data In the following snippet we use @ref StbDxtImageConverter to convert the same