Magnum::Trade::AnyImageConverter class

Any image converter plugin.

Detects file type based on file extension, loads corresponding plugin and then tries to convert the file with it. Supported formats for uncompressed data:

  • Basis Universal (*.basis), converted with BasisImageConverter or any other plugin that provides it
  • Windows Bitmap (*.bmp), converted with any plugin that provides BmpImageConverter
  • OpenEXR (*.exr), converted with any plugin that provides OpenExrImageConverter
  • Radiance HDR (*.hdr), converted with any plugin that provides HdrImageConverter
  • JPEG (*.jpg, *.jpe, *.jpeg), converted with JpegImageConverter or any other plugin that provides it
  • KTX2 (*.ktx2), converted with any plugin that provides KtxImageConverter
  • Portable Network Graphics (*.png), converted with PngImageConverter or any other plugin that provides it
  • Truevision TGA (*.tga, *.vda, *.icb, *.vst), converted with TgaImageConverter or any other plugin that provides it

No supported formats for compressed data yet. Only exporting to files is supported.

Usage

This plugin depends on the Trade library and is built if WITH_ANYIMAGECONVERTER is enabled when building Magnum. To use as a dynamic plugin, load "AnyImageConverter" via Corrade::PluginManager::Manager.

Additionally, if you're using Magnum as a CMake subproject, do the following:

set(WITH_ANYIMAGECONVERTER ON CACHE BOOL "" FORCE)
add_subdirectory(magnum EXCLUDE_FROM_ALL)

# So the dynamically loaded plugin gets built implicitly
add_dependencies(your-app Magnum::AnyImageConverter)

To use as a static plugin or as a dependency of another plugin with CMake, you need to request the AnyImageConverter component of the Magnum package and link to the Magnum::AnyImageConverter target:

find_package(Magnum REQUIRED AnyImageConverter)

# ...
target_link_libraries(your-app PRIVATE Magnum::AnyImageConverter)

See Downloading and building, Usage with CMake, Loading and using plugins and File format support for more information.

Interface proxying and option propagation

On a call to convertToFile(), a target file format is detected from the extension and a corresponding plugin is loaded. After that, flags set via setFlags() and options set through configuration() are propagated to the concrete implementation, with a warning emitted in case given option is not present in the default configuration of the target plugin.

The output of the convertToFile() function called on the concrete implementation is then proxied back.

Base classes

class AbstractImageConverter
Base for image converter plugins.

Constructors, destructors, conversion operators

AnyImageConverter(PluginManager::Manager<AbstractImageConverter>& manager) explicit
Constructor with access to plugin manager.
AnyImageConverter(PluginManager::AbstractManager& manager, const std::string& plugin) explicit
Plugin manager constructor.