Image
The Image class provides a comprehensive set of methods for working with images, supporting various image types (2D, 3D, Cube) and formats. It allows the creation, manipulation, and conversion of images, with functionality for operations like loading, saving, resizing, flipping, rotating, and comparing images. The class supports a variety of image flags to control behavior (e.g., mipmaps, compression), as well as different image filters for resizing and minification. It offers methods for querying image properties such as dimensions, format, components, and layout, and includes the ability to manipulate image slices, regions, and components. The class also provides advanced features like handling image metadata, creating mipmaps, and obtaining the raw image data for processing or manipulation. Additionally, it supports asynchronous operations for optimized performance when dealing with large image data.
#include <format/TellusimImage.h>
Constructors
Image()
explicit Image(const char *name, Flags flags = FlagNone, uint32_t offset = 0)
explicit Image(Stream &stream, Flags flags = FlagNone, uint32_t offset = 0)
Image(Type type, Format format, Size size, Flags flags = FlagNone)
Image(Type type, Format format, Size size, uint32_t layers, Flags flags = FlagNone)
Methods
Clear image.
void clear()
Check image.
bool isLoaded() const
bool isAllocated() const
Image type.
Type getType() const
static const char *getTypeName(Type type)
const char *getTypeName() const
bool is2DType() const
bool is3DType() const
bool isCubeType() const
Image format.
Format getFormat() const
const char *getFormatName() const
bool isColorFormat() const
bool isDepthFormat() const
bool isPixelFormat() const
bool isPlainFormat() const
bool isMixedFormat() const
bool isBlockFormat() const
bool isStencilFormat() const
bool isNormFormat() const
bool isSRGBFormat() const
bool isFloatFormat() const
bool isSignedFormat() const
bool isUnsignedFormat() const
bool isIntegerFormat() const
bool isi8Format() const
bool isu8Format() const
bool is8BitFormat() const
bool isi16Format() const
bool isu16Format() const
bool isf16Format() const
bool is16BitFormat() const
bool isi32Format() const
bool isu32Format() const
bool isf32Format() const
bool is32BitFormat() const
bool isi64Format() const
bool isu64Format() const
bool isf64Format() const
bool is64BitFormat() const
bool isBC15Format() const
bool isBC67Format() const
bool isETC2Format() const
bool isASTCFormat() const
uint32_t getComponents() const
uint32_t getPixelSize() const
uint32_t getBlockSize() const
uint32_t getBlockWidth() const
uint32_t getBlockHeight() const
Image dimension.
uint32_t getWidth() const
uint32_t getHeight() const
uint32_t getDepth() const
uint32_t getFaces() const
uint32_t getLayers() const
uint32_t getMipmaps() const
uint32_t findMipmap(Size size) const
uint32_t getWidth(uint32_t mipmap) const
uint32_t getHeight(uint32_t mipmap) const
uint32_t getDepth(uint32_t mipmap) const
bool hasLayers() const
bool hasMipmaps() const
Size getSize() const
Region getRegion() const
Slice getSlice() const
Size getSize(uint32_t mipmap) const
Region getRegion(uint32_t mipmap) const
Slice getSlice(uint32_t mipmap) const
Image meta info.
void setMetaInfo(const String &str)
String getMetaInfo() const
Image description.
String getDescription() const
Image layout.
size_t getOffset(Slice slice, uint32_t alignment = 1) const
size_t getStride(uint32_t mipmap = 0, uint32_t alignment = 1) const
size_t getMipmapSize(uint32_t mipmap, uint32_t alignment = 1) const
size_t getLayerSize(uint32_t alignment = 1) const
size_t getDataSize(uint32_t alignment = 1) const
Create image.
bool create(Type type, Format format, Size size, Flags flags = FlagNone)
bool create(Type type, Format format, Size size, uint32_t layers, Flags flags = FlagNone)
bool create2D(Format format, uint32_t size, Flags flags = FlagNone)
bool create3D(Format format, uint32_t size, Flags flags = FlagNone)
bool createCube(Format format, uint32_t size, Flags flags = FlagNone)
bool create2D(Format format, uint32_t width, uint32_t height, Flags flags = FlagNone)
bool create3D(Format format, uint32_t width, uint32_t height, uint32_t depth, Flags flags = FlagNone)
bool create2D(Format format, uint32_t width, uint32_t height, uint32_t layers, Flags flags = FlagNone)
bool createCube(Format format, uint32_t size, uint32_t layers, Flags flags = FlagNone)
Info image.
bool info(const char *name, Flags flags = FlagNone, uint32_t offset = 0, Async *async = nullptr)
bool info(const String &name, Flags flags = FlagNone, uint32_t offset = 0, Async *async = nullptr)
bool info(Stream &stream, Flags flags = FlagNone, uint32_t offset = 0, Async *async = nullptr)
bool info(const char *name, Async *async)
bool info(const String &name, Async *async)
bool info(Stream &stream, Async *async)
Load image.
bool load(const char *name, Flags flags = FlagNone, uint32_t offset = 0, Async *async = nullptr)
bool load(const String &name, Flags flags = FlagNone, uint32_t offset = 0, Async *async = nullptr)
bool load(Stream &stream, Flags flags = FlagNone, uint32_t offset = 0, Async *async = nullptr)
bool load(const char *name, Async *async)
bool load(const String &name, Async *async)
bool load(Stream &stream, Async *async)
Save image.
bool save(const char *name, Flags flags = FlagNone, uint32_t quality = 95) const
bool save(const String &name, Flags flags = FlagNone, uint32_t quality = 95) const
bool save(Stream &stream, Flags flags = FlagNone, uint32_t quality = 95) const
Image components.
bool swap(uint32_t component_0, uint32_t component_1)
bool copy(const Image &src, uint32_t dest_component, uint32_t src_component)
Flip horizontally.
bool flipX(Region region, Slice slice)
bool flipX(Region region)
bool flipX()
Flip vertically.
bool flipY(Region region, Slice slice)
bool flipY(Region region)
bool flipY()
Copy image.
bool copy(const Image &src, Origin dest_origin, Region src_region, Slice dest_slice, Slice src_slice)
bool copy(const Image &src, Origin dest_origin, Region src_region)
bool copy(const Image &src, Origin dest_origin, Slice dest_slice)
bool copy(const Image &src, Slice dest_slice, Slice src_slice)
bool copy(const Image &src, Origin dest_origin)
bool copy(const Image &src, Slice dest_slice)
Convert image to type.
Image toType(Type type, Flags flags, Async *async = nullptr) const
Image toType(Type type, Async *async = nullptr) const
Convert image to format.
Image toFormat(Format format, Flags flags, Async *async = nullptr) const
Image toFormat(Format format, Async *async = nullptr) const
Get image slice.
Image getSlice(Slice slice) const
Get image component.
Image getComponent(uint32_t component) const
Get image region.
Image getRegion(Region region, Slice slice) const
Image getRegion(Region region) const
Get rotated image.
Image getRotated(int32_t angle, Slice slice) const
Image getRotated(int32_t angle) const
Get resized image.
Image getResized(Size size, Filter min, Filter mag, Flags flags, Async *async = nullptr) const
Image getResized(Size size, Filter min, Filter mag = FilterCubic, Async *async = nullptr) const
Image getResized(Size size, Async *async = nullptr) const
Get mipmapped image.
Image getMipmapped(Filter filter, Flags flags, Async *async = nullptr) const
Image getMipmapped(Filter filter, Async *async = nullptr) const
Image getMipmapped(Async *async = nullptr) const
Compare images.
int32_t compare(const Image &image) const
Image data.
const uint8_t *getData(Slice slice = Slice()) const
uint8_t *getData(Slice slice = Slice())
const uint8_t *getData(Origin origin, Slice slice = Slice()) const
uint8_t *getData(Origin origin, Slice slice = Slice())
bool setData(const void *src, Slice slice = Slice(), uint32_t alignment = 1, size_t stride = 0)
bool getData(void *dest, Slice slice = Slice(), uint32_t alignment = 1, size_t stride = 0) const
Memory usage.
size_t getMemory() const
Enums
Type
Image types.
Name | Value |
---|---|
TypeUnknown | 0 |
Type2D | 1 |
Type3D | 2 |
TypeCube | 3 |
NumTypes | 4 |
Flags
Image flags.
Name | Value | Description |
---|---|---|
FlagNone | 0 | |
FlagMipmaps | (1 << 0) | Create mipmaps. |
FlagNoClear | (1 << 1) | Do not clear. |
FlagNoAllocate | (1 << 2) | Do not allocate. |
FlagFast | (1 << 3) | Fast compression. |
FlagBest | (1 << 4) | Best compression. |
FlagPerceptual | (1 << 5) | Perceptual block encoding. |
FlagPanorama | (1 << 6) | Cube to panorama type conversion. |
FlagNormalize | (1 << 7) | Normalize format conversion. |
FlagGamma | (1 << 8) | Gamma format conversion. |
FlagSRGB | (1 << 9) | SRGB format conversion. |
NumFlags | 10 |
Filter
Image filters.
Name | Value | Description |
---|---|---|
FilterUnknown | 0 | |
FilterPoint | 1 | Point filter. |
FilterLinear | 2 | Linear magnification filter. |
FilterCubic | 3 | Cubic magnification filter. |
FilterSinc | 4 | Sinc minification filter. |
FilterBox | 5 | Box minification filter. |
FilterMax | 6 | Max minification filter. |
FilterMin | 7 | Min minification filter. |
FilterMip | 8 | Mip minification filter. |
FilterCR | 9 | Catmull-Rom filter. |
NumFilters | 10 |