About
The MAXON API ALIASES provides several interfaces to handle image data. All these interfaces are based on maxon::ImageBaseInterface:
- Note
- Typically these image classes represent uncompressed image data. But it is also possible that an image could store compressed or non-RGB data.
-
A maxon::ImageRef can be obtained from a BaseBitmap using BaseBitmap::GetImageRef(). See BaseBitmap Manual.
const maxon::ImageRef image = maxon::ImageClasses::IMAGE().Create()
iferr_return;
const maxon::PixelFormat rgbFormat = maxon::PixelFormats::RGB::U8();
const auto storageType = maxon::ImagePixelStorageClasses::Normal();
image.Init(width, height, storageType, rgbFormat)
iferr_return;
const maxon::BITS bitsPerPixel = rgbFormat.GetBitsPerPixel();
{
{
{
return maxon::SafeConvert<maxon::UChar>(randomValue);
};
pixelArray[0] = GetRandomValue();
pixelArray[1] = GetRandomValue();
pixelArray[2] = GetRandomValue();
}
}
const maxon::MediaOutputUrlRef png = maxon::ImageSaverClasses::Png().Create()
iferr_return;
maxon::MediaSessionRef session;
const maxon::ImageTextureRef textureRef = maxon::ImageTextureClasses::TEXTURE().Create()
iferr_return;
ImageBaseInterface
maxon::ImageBaseInterface is the base interface of all image interfaces.
An image typically stores bitmap data. This data is accessed with:
An image can have multiple channels / components:
Changes to the image can be detected with this observable:
- ObservableRegionChanged: Is fired as soon as anybody modifies the pixel data.
maxon::ImageBaseInterface is based on
const maxon::ImageTextureRef sourceImage = maxon::ImageTextureClasses::TEXTURE().Create()
iferr_return;
const maxon::PixelFormat format = maxon::PixelFormats::RGB::U8();
const auto offset = format.GetChannelOffsets();
const maxon::Int height = sourceImage.GetHeight();
const maxon::Int size = width * format.GetChannelCount();
const maxon::BITS bitsPerPixel = format.GetBitsPerPixel();
const maxon::ImageRef invertedImage = maxon::ImageClasses::IMAGE().Create()
iferr_return;
const auto storageType = maxon::ImagePixelStorageClasses::Normal();
invertedImage.Init(width, height, storageType, format)
iferr_return;
const maxon::ColorProfile colorProfile { };
{
{
data[i] = 255 - data[i];
});
}
const maxon::ImageTextureRef targetImage = maxon::ImageTextureClasses::TEXTURE().Create()
iferr_return;
const maxon::MediaOutputUrlRef png = maxon::ImageSaverClasses::Png().Create()
iferr_return;
ImageTextureInterface
maxon::ImageTextureInterface represents a texture object with one or multiple images and layers.
The namespace maxon::ImageTextureClasses contains published objects with implementations of maxon::ImageTextureInterface. The default implementation is maxon::ImageTextureClasses::TEXTURE in gfx_image.h
.
const maxon::ImageTextureRef image = maxon::ImageTextureClasses::TEXTURE().Create()
iferr_return;
const maxon::MediaOutputUrlRef jpg = maxon::ImageSaverClasses::Jpg().Create()
iferr_return;
maxon::DataDictionary exportSettings;
exportSettings.Set(maxon::MEDIASESSION::EXPORT::QUALITY, 0.8_f)
iferr_return;
image.Set(maxon::IMAGEPROPERTIES::IMAGE::EXPORTSETTINGS, exportSettings)
iferr_return;
ImageInterface
maxon::ImageInterface represents a single image of a maxon::ImageTextureInterface.
The namespace maxon::ImageClasses contains published objects with implementations of maxon::ImageInterface. The default implementation is maxon::ImageClasses::IMAGE in gfx_image.h
.
ImageLayerInterface
maxon::ImageLayerInterface represents a single layer within a maxon::ImageInterface. The namespace maxon::ImageLayerClasses contains published objects with implementations of maxon::ImageLayerInterface. The default implementation is maxon::ImageLayerClasses::RASTER in gfx_image.h
.
Utility
Utility functions to handle images:
Further Reading