Modules | Functions
Image Store and Load

Eet efficiently stores and loads images, including alpha channels and lossy compressions. More...

Modules

 Image Store and Load using a Cipher
 Most of the Image Store and Load have alternative versions that accounts for ciphers to protect their content.
 

Functions

EAPI int eet_data_image_header_read (Eet_File *ef, const char *name, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, Eet_Image_Encoding *lossy)
 Reads just the header data for an image and dont decode the pixels. More...
 
EAPI void * eet_data_image_read (Eet_File *ef, const char *name, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, Eet_Image_Encoding *lossy)
 Reads image data from the named key in the eet file. More...
 
EAPI int eet_data_image_read_to_surface (Eet_File *ef, const char *name, unsigned int src_x, unsigned int src_y, unsigned int *d, unsigned int w, unsigned int h, unsigned int row_stride, int *alpha, int *compress, int *quality, Eet_Image_Encoding *lossy)
 Reads image data from the named key in the eet file and store it in the given buffer. More...
 
EAPI int eet_data_image_write (Eet_File *ef, const char *name, const void *data, unsigned int w, unsigned int h, int alpha, int compress, int quality, Eet_Image_Encoding lossy)
 Writes image data to the named key in an eet file. More...
 
EAPI int eet_data_image_header_decode (const void *data, int size, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, Eet_Image_Encoding *lossy)
 Decodes Image data header only to get information. More...
 
EAPI void * eet_data_image_decode (const void *data, int size, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, Eet_Image_Encoding *lossy)
 Decodes Image data into pixel data. More...
 
EAPI int eet_data_image_decode_to_surface (const void *data, int size, unsigned int src_x, unsigned int src_y, unsigned int *d, unsigned int w, unsigned int h, unsigned int row_stride, int *alpha, int *compress, int *quality, Eet_Image_Encoding *lossy)
 Decodes Image data into pixel data and stores in the given buffer. More...
 
EAPI void * eet_data_image_encode (const void *data, int *size_ret, unsigned int w, unsigned int h, int alpha, int compress, int quality, Eet_Image_Encoding lossy)
 Encodes image data for storage or transmission. More...
 
EAPI int eet_data_image_colorspace_get (Eet_File *ef, const char *name, const char *cipher_key, const Eet_Colorspace **cspaces)
 Gets the colorspace Eet can decode into of a given eet image resource. More...
 

Detailed Description

Eet efficiently stores and loads images, including alpha channels and lossy compressions.

Eet can handle both lossy compression with different levels of quality and non-lossy compression with different compression levels. It's also possible, given an image data, to only read its header to get the image information without decoding the entire content for it.

The encode family of functions will take an image raw buffer and its parameters and compress it in memory, returning the new buffer. Likewise, the decode functions will read from the given location in memory and return the uncompressed image.

The read and write functions will, respectively, encode and decode to or from an Eet file, under the specified key.

These functions are fairly low level and the same functionality can be achieved using Evas and Edje, making it much easier to work with images as well as not needing to worry about things like scaling them.

Function Documentation

◆ eet_data_image_header_read()

EAPI int eet_data_image_header_read ( Eet_File ef,
const char *  name,
unsigned int *  w,
unsigned int *  h,
int *  alpha,
int *  compress,
int *  quality,
Eet_Image_Encoding lossy 
)

Reads just the header data for an image and dont decode the pixels.

Parameters
efA valid eet file handle opened for reading.
nameName of the entry. eg: "/base/file_i_want".
wA pointer to the unsigned int to hold the width in pixels.
hA pointer to the unsigned int to hold the height in pixels.
alphaA pointer to the int to hold the alpha flag.
compressA pointer to the int to hold the compression amount.
qualityA pointer to the int to hold the quality amount.
lossyA pointer to the int to hold the lossiness flag.
Returns
1 on successful decode, 0 otherwise

Reads and decodes the image header data stored under the given key and Eet file.

The information decoded is placed in each of the parameters, which must be provided. The width and height, measured in pixels, will be stored under the variables pointed by w and h, respectively. If the read or decode of the header fails, this values will be 0. The alpha parameter will be 1 or 0, denoting if the alpha channel of the image is used or not. If the image was losslessly compressed, the compress parameter will hold the compression amount used, ranging from 0 to 9 and lossy will be 0. In the case of lossy compression, lossy will be 1, and the compression quality will be placed under quality, with a value ranging from 0 to 100.

See also
eet_data_image_header_decode()
eet_data_image_header_read_cipher()
Since
1.0.0

References eet_data_image_header_read_cipher().

◆ eet_data_image_read()

EAPI void* eet_data_image_read ( Eet_File ef,
const char *  name,
unsigned int *  w,
unsigned int *  h,
int *  alpha,
int *  compress,
int *  quality,
Eet_Image_Encoding lossy 
)

Reads image data from the named key in the eet file.

Parameters
efA valid eet file handle opened for reading.
nameName of the entry. eg: "/base/file_i_want".
wA pointer to the unsigned int to hold the width in pixels.
hA pointer to the unsigned int to hold the height in pixels.
alphaA pointer to the int to hold the alpha flag.
compressA pointer to the int to hold the compression amount.
qualityA pointer to the int to hold the quality amount.
lossyA pointer to the int to hold the lossiness flag.
Returns
The image pixel data decoded

Reads and decodes the image stored in the given Eet file under the named key.

The returned pixel data is a linear array of pixels starting from the top-left of the image, scanning row by row from left to right. Each pile is a 32bit value, with the high byte being the alpha channel, the next being red, then green, and the low byte being blue.

The rest of the parameters are the same as in eet_data_image_header_read().

On success the function returns a pointer to the image data decoded. The calling application is responsible for calling free() on the image data when it is done with it. On failure NULL is returned and the parameter values may not contain any sensible data.

See also
eet_data_image_header_read()
eet_data_image_decode()
eet_data_image_read_cipher()
eet_data_image_read_to_surface()
Since
1.0.0

References eet_data_image_read_cipher().

◆ eet_data_image_read_to_surface()

EAPI int eet_data_image_read_to_surface ( Eet_File ef,
const char *  name,
unsigned int  src_x,
unsigned int  src_y,
unsigned int *  d,
unsigned int  w,
unsigned int  h,
unsigned int  row_stride,
int *  alpha,
int *  compress,
int *  quality,
Eet_Image_Encoding lossy 
)

Reads image data from the named key in the eet file and store it in the given buffer.

Parameters
efA valid eet file handle opened for reading.
nameName of the entry. eg: "/base/file_i_want".
src_xThe starting x coordinate from where to dump the stream.
src_yThe starting y coordinate from where to dump the stream.
dA pointer to the pixel surface.
wThe expected width in pixels of the pixel surface to decode.
hThe expected height in pixels of the pixel surface to decode.
row_strideThe length of a pixels line in the destination surface.
alphaA pointer to the int to hold the alpha flag.
compressA pointer to the int to hold the compression amount.
qualityA pointer to the int to hold the quality amount.
lossyA pointer to the int to hold the lossiness flag.
Returns
1 on success, 0 otherwise.

Reads and decodes the image stored in the given Eet file, placing the resulting pixel data in the buffer pointed by the user.

Like eet_data_image_read(), it takes the image data stored under the name key in the ef file, but instead of returning a new buffer with the pixel data, it places the result in the buffer pointed by d, which must be provided by the user and of sufficient size to hold the requested portion of the image.

The src_x and src_y parameters indicate the top-left corner of the section of the image to decode. These have to be higher or equal than 0 and less than the respective total width and height of the image. The width and height of the section of the image to decode are given in w and h and also can't be higher than the total width and height of the image.

The row_stride parameter indicates the length in bytes of each line in the destination buffer and it has to be at least w * 4.

All the other parameters are the same as in eet_data_image_read().

On success the function returns 1, and 0 on failure. On failure the parameter values may not contain any sensible data.

See also
eet_data_image_read()
eet_data_image_decode()
eet_data_image_decode_to_surface()
eet_data_image_read_to_surface_cipher()
eet_data_image_decode_to_cspace_surface_cipher()
Since
1.0.2

References eet_data_image_read_to_surface_cipher().

◆ eet_data_image_write()

EAPI int eet_data_image_write ( Eet_File ef,
const char *  name,
const void *  data,
unsigned int  w,
unsigned int  h,
int  alpha,
int  compress,
int  quality,
Eet_Image_Encoding  lossy 
)

Writes image data to the named key in an eet file.

Parameters
efA valid eet file handle opened for writing.
nameName of the entry. eg: "/base/file_i_want".
dataA pointer to the image pixel data.
wThe width of the image in pixels.
hThe height of the image in pixels.
alphaThe alpha channel flag.
compressThe compression amount.
qualityThe quality encoding amount.
lossyThe lossiness flag.
Returns
Success if the data was encoded and written or not.

This function takes image pixel data and encodes it in an eet file stored under the supplied name key, and returns how many bytes were actually written to encode the image data.

The data expected is the same format as returned by eet_data_image_read. If this is not the case weird things may happen. Width and height must be between 1 and 8000 pixels. The alpha flags can be 0 or 1 (0 meaning the alpha values are not useful and 1 meaning they are). Compress can be from 0 to 9 (0 meaning no compression, 9 meaning full compression). This is only used if the image is not lossily encoded. Quality is used on lossy compression and should be a value from 0 to 100. The lossy flag can be 0 or 1. 0 means encode losslessly and 1 means to encode with image quality loss (but then have a much smaller encoding).

On success this function returns the number of bytes that were required to encode the image data, or on failure it returns 0.

See also
eet_data_image_read()
eet_data_image_encode()
eet_data_image_write_cipher()
Since
1.0.0

References eet_data_image_write_cipher().

◆ eet_data_image_header_decode()

EAPI int eet_data_image_header_decode ( const void *  data,
int  size,
unsigned int *  w,
unsigned int *  h,
int *  alpha,
int *  compress,
int *  quality,
Eet_Image_Encoding lossy 
)

Decodes Image data header only to get information.

Parameters
dataThe encoded pixel data.
sizeThe size, in bytes, of the encoded pixel data.
wA pointer to the unsigned int to hold the width in pixels.
hA pointer to the unsigned int to hold the height in pixels.
alphaA pointer to the int to hold the alpha flag.
compressA pointer to the int to hold the compression amount.
qualityA pointer to the int to hold the quality amount.
lossyA pointer to the int to hold the lossiness flag.
Returns
1 on success, 0 on failure.

This function works exactly like eet_data_image_header_read(), but instead of reading from an Eet file, it takes the buffer of size size pointed by data, which must be a valid Eet encoded image.

On success the function returns 1 indicating the header was read and decoded properly, or 0 on failure.

See also
eet_data_image_header_read()
eet_data_image_header_decode_cipher()
Since
1.0.0

References eet_data_image_header_decode_cipher().

Referenced by eet_data_image_decode_cipher(), and eet_data_image_header_read_cipher().

◆ eet_data_image_decode()

EAPI void* eet_data_image_decode ( const void *  data,
int  size,
unsigned int *  w,
unsigned int *  h,
int *  alpha,
int *  compress,
int *  quality,
Eet_Image_Encoding lossy 
)

Decodes Image data into pixel data.

Parameters
dataThe encoded pixel data.
sizeThe size, in bytes, of the encoded pixel data.
wA pointer to the unsigned int to hold the width in pixels.
hA pointer to the unsigned int to hold the height in pixels.
alphaA pointer to the int to hold the alpha flag.
compressA pointer to the int to hold the compression amount.
qualityA pointer to the int to hold the quality amount.
lossyA pointer to the int to hold the lossiness flag.
Returns
The image pixel data decoded

This function takes encoded pixel data and decodes it into raw RGBA pixels on success.

It works exactly like eet_data_image_read(), but it takes the encoded data in the data buffer of size size, instead of reading from a file. All the others parameters are also the same.

On success the function returns a pointer to the image data decoded. The calling application is responsible for calling free() on the image data when it is done with it. On failure NULL is returned and the parameter values may not contain any sensible data.

See also
eet_data_image_read()
eet_data_image_decode_cipher()
Since
1.0.0

References eet_data_image_decode_cipher().

Referenced by eet_data_image_read_cipher().

◆ eet_data_image_decode_to_surface()

EAPI int eet_data_image_decode_to_surface ( const void *  data,
int  size,
unsigned int  src_x,
unsigned int  src_y,
unsigned int *  d,
unsigned int  w,
unsigned int  h,
unsigned int  row_stride,
int *  alpha,
int *  compress,
int *  quality,
Eet_Image_Encoding lossy 
)

Decodes Image data into pixel data and stores in the given buffer.

Parameters
dataThe encoded pixel data.
sizeThe size, in bytes, of the encoded pixel data.
src_xThe starting x coordinate from where to dump the stream.
src_yThe starting y coordinate from where to dump the stream.
dA pointer to the pixel surface.
wThe expected width in pixels of the pixel surface to decode.
hThe expected height in pixels of the pixel surface to decode.
row_strideThe length of a pixels line in the destination surface.
alphaA pointer to the int to hold the alpha flag.
compressA pointer to the int to hold the compression amount.
qualityA pointer to the int to hold the quality amount.
lossyA pointer to the int to hold the lossiness flag.
Returns
1 on success, 0 otherwise.

Like eet_data_image_read_to_surface(), but reading the given data buffer instead of a file.

On success the function returns 1, and 0 on failure. On failure the parameter values may not contain any sensible data.

See also
eet_data_image_read_to_surface()
eet_data_image_decode_to_surface_cipher()
Since
1.0.2

References eet_data_image_decode_to_surface_cipher().

◆ eet_data_image_encode()

EAPI void* eet_data_image_encode ( const void *  data,
int *  size_ret,
unsigned int  w,
unsigned int  h,
int  alpha,
int  compress,
int  quality,
Eet_Image_Encoding  lossy 
)

Encodes image data for storage or transmission.

Parameters
dataA pointer to the image pixel data.
size_retA pointer to an int to hold the size of the returned data.
wThe width of the image in pixels.
hThe height of the image in pixels.
alphaThe alpha channel flag.
compressThe compression amount.
qualityThe quality encoding amount.
lossyThe lossiness flag.
Returns
The encoded image data.

This function stakes image pixel data and encodes it with compression and possible loss of quality (as a trade off for size) for storage or transmission to another system.

It works like eet_data_image_write(), but instead of writing the encoded image into an Eet file, it allocates a new buffer of the size required and returns the encoded data in it.

On success this function returns a pointer to the encoded data that you can free with free() when no longer needed.

See also
eet_data_image_write()
eet_data_image_read()
eet_data_image_encode_cipher()
Since
1.0.0

References eet_data_image_encode_cipher().

Referenced by eet_data_image_write_cipher().

◆ eet_data_image_colorspace_get()

EAPI int eet_data_image_colorspace_get ( Eet_File ef,
const char *  name,
const char *  cipher_key,
const Eet_Colorspace **  cspaces 
)

Gets the colorspace Eet can decode into of a given eet image resource.

Parameters
efA valid eet file handle opened for reading.
nameName of the entry. eg: "/base/file_i_want".
cipher_keyThe key to use as cipher.
cspacesReturned pointer by Eet to a list of possible decoding colorspace finished by EET_COLORSPACE_ARGB8888. If NULL, only EET_COLORSPACE_ARGB8888 is supported.
Returns
1 on successful get, 0 otherwise.
Since
1.10.0

References eet_read_cipher(), and eet_read_direct().