ThorVG  v0.5
Public Member Functions | Static Public Member Functions | List of all members
Picturefinal

A class representing an image read in one of the supported formats: raw, svg, png and etc. Besides the methods inherited from the Paint, it provides methods to load & draw images on the canvas. More...

Inheritance diagram for Picture:
Inheritance graph
[legend]

Public Member Functions

Result load (const std::string &path) noexcept
 Loads a picture data directly from a file. More...
 
TVG_DEPRECATED Result load (const char *data, uint32_t size, bool copy=false) noexcept
 Loads a picture data from a memory block of a given size. More...
 
Result load (const char *data, uint32_t size, const std::string &mimeType, bool copy=false) noexcept
 Loads a picture data from a memory block of a given size. More...
 
Result size (float w, float h) noexcept
 Resize the picture content with the given width and height. More...
 
Result size (float *w, float *h) const noexcept
 Gets the size of the image. More...
 
const uint32_t * data (uint32_t *w, uint32_t *h) const noexcept
 Gets the pixels information of the picture. More...
 
Result load (uint32_t *data, uint32_t w, uint32_t h, bool copy) noexcept
 Loads a raw data from a memory block with a given size. More...
 
Result viewbox (float *x, float *y, float *w, float *h) const noexcept
 Gets the position and the size of the loaded SVG picture. More...
 
- Public Member Functions inherited from Paint
Result rotate (float degree) noexcept
 Sets the angle by which the object is rotated. More...
 
Result scale (float factor) noexcept
 Sets the scale value of the object. More...
 
Result translate (float x, float y) noexcept
 Sets the values by which the object is moved in a two-dimensional space. More...
 
Result transform (const Matrix &m) noexcept
 Sets the matrix of the affine transformation for the object. More...
 
Matrix transform () noexcept
 Gets the matrix of the affine transformation of the object. More...
 
Result opacity (uint8_t o) noexcept
 Sets the opacity of the object. More...
 
Result composite (std::unique_ptr< Paint > target, CompositeMethod method) noexcept
 Sets the composition target object and the composition method. More...
 
TVG_DEPRECATED Result bounds (float *x, float *y, float *w, float *h) const noexcept
 Gets the bounding box of the paint object before any transformation. More...
 
Result bounds (float *x, float *y, float *w, float *h, bool transformed) const noexcept
 Gets the axis-aligned bounding box of the paint object. More...
 
Paintduplicate () const noexcept
 Duplicates the object. More...
 
uint8_t opacity () const noexcept
 Gets the opacity value of the object. More...
 
CompositeMethod composite (const Paint **target) const noexcept
 Gets the composition target object and the composition method. More...
 

Static Public Member Functions

static std::unique_ptr< Picturegen () noexcept
 Creates a new Picture object. More...
 

Detailed Description

A class representing an image read in one of the supported formats: raw, svg, png and etc. Besides the methods inherited from the Paint, it provides methods to load & draw images on the canvas.

Note
Supported formats are depended on the available TVG loaders.

Member Function Documentation

◆ data()

const uint32_t* data ( uint32_t *  w,
uint32_t *  h 
) const
noexcept

Gets the pixels information of the picture.

Warning
Please do not use it, this API is not official one. It could be modified in the next version.

@BETA_API

◆ gen()

static std::unique_ptr<Picture> gen ( )
staticnoexcept

Creates a new Picture object.

Returns
A new Picture object.

◆ load() [1/4]

TVG_DEPRECATED Result load ( const char *  data,
uint32_t  size,
bool  copy = false 
)
noexcept

Loads a picture data from a memory block of a given size.

Parameters
[in]dataA pointer to a memory location where the content of the picture file is stored.
[in]sizeThe size in bytes of the memory occupied by the data.
[in]copyDecides whether the data should be copied into the engine local buffer.
Return values
Result::SuccessWhen succeed.
Result::InvalidArgumentsIn case no data are provided or the size is zero or less.
Result::NonSupportWhen trying to load a file with an unknown extension.
Result::UnknownIf an error occurs at a later stage.
Warning
: you have responsibility to release the data memory if the copy is true
See also
Result load(const char* data, uint32_t size, const std::string& mimeType, bool copy = false) noexcept

◆ load() [2/4]

Result load ( const char *  data,
uint32_t  size,
const std::string &  mimeType,
bool  copy = false 
)
noexcept

Loads a picture data from a memory block of a given size.

Parameters
[in]dataA pointer to a memory location where the content of the picture file is stored.
[in]sizeThe size in bytes of the memory occupied by the data.
[in]mimetypeMimetype or extension of data such as "jpg", "jpeg", "svg", "svg+xml", "png", etc. If empty string or unknown, loaders will be tried one by one.
[in]copyDecides whether the data should be copied into the engine local buffer.
Return values
Result::SuccessWhen succeed.
Result::InvalidArgumentsIn case no data are provided or the size is zero or less.
Result::NonSupportWhen trying to load a file with an unknown extension.
Result::UnknownIf an error occurs at a later stage.
Warning
: you have responsibility to release the data memory if the copy is true
Since
0.5

◆ load() [3/4]

Result load ( const std::string &  path)
noexcept

Loads a picture data directly from a file.

Parameters
[in]pathA path to the picture file.
Return values
Result::SuccessWhen succeed.
Result::InvalidArgumentsIn case the path is invalid.
Result::NonSupportWhen trying to load a file with an unknown extension.
Result::UnknownIf an error occurs at a later stage.
Note
The Load behavior can be asynchronous if the assigned thread number is greater than zero.
See also
Initializer::init()

◆ load() [4/4]

Result load ( uint32_t *  data,
uint32_t  w,
uint32_t  h,
bool  copy 
)
noexcept

Loads a raw data from a memory block with a given size.

Warning
Please do not use it, this API is not official one. It could be modified in the next version.

@BETA_API

◆ size() [1/2]

Result size ( float *  w,
float *  h 
) const
noexcept

Gets the size of the image.

Parameters
[out]wThe width of the image in pixels.
[out]hThe height of the image in pixels.
Returns
Result::Success when succeed.

◆ size() [2/2]

Result size ( float  w,
float  h 
)
noexcept

Resize the picture content with the given width and height.

Resize the picture content while keeping the default size aspect ratio. The scaling factor is established for each of dimensions and the smaller value is applied to both of them.

Parameters
[in]wA new width of the image in pixels.
[in]hA new height of the image in pixels.
Returns
Result::Success when succeed, Result::InsufficientCondition otherwise.

◆ viewbox()

Result viewbox ( float *  x,
float *  y,
float *  w,
float *  h 
) const
noexcept

Gets the position and the size of the loaded SVG picture.

Warning
Please do not use it, this API is not official one. It could be modified in the next version.

@BETA_API