Image Store and Load(3) including alpha channels and lossy compressions.

Other Alias

Eet efficiently stores and loads images

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, int *lossy)
Read just the header data for an image and dont decode the pixels.
EAPI void * eet_data_image_read (Eet_File *ef, const char *name, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, int *lossy)
Read image data from the named key in the eet file.
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, int *lossy)
Read image data from the named key in the eet file.
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, int lossy)
Write image data to the named key in an eet file.
EAPI int eet_data_image_header_decode (const void *data, int size, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, int *lossy)
Decode Image data header only to get information.
EAPI void * eet_data_image_decode (const void *data, int size, unsigned int *w, unsigned int *h, int *alpha, int *compress, int *quality, int *lossy)
Decode Image data into pixel data.
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, int *lossy)
Decode Image data into pixel data.
EAPI void * eet_data_image_encode (const void *data, int *size_ret, unsigned int w, unsigned int h, int alpha, int compress, int quality, int lossy)
Encode image data for storage or transmission.

Detailed Description

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

Function Documentation

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

Decode Image data into pixel data. Parameters:

data The encoded pixel data.
size The size, in bytes, of the encoded pixel data.
w A pointer to the unsigned int to hold the width in pixels.
h A pointer to the unsigned int to hold the height in pixels.
alpha A pointer to the int to hold the alpha flag.
compress A pointer to the int to hold the compression amount.
quality A pointer to the int to hold the quality amount.
lossy A 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.

The other parameters of the image (width, height etc.) are placed into the values pointed to (they must be supplied). The 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 pixel 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 width and height are measured in pixels and will be greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes that the alpha channel is not used. 1 denotes that it is significant. Compress is filled with the compression value/amount the image was stored with. The quality value is filled with the quality encoding of the image file (0 - 100). The lossy flags is either 0 or 1 as to if the image was encoded lossily or not.

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_decode_cipher()

Since:

1.0.0

References eet_data_image_decode_cipher().

Referenced by eet_data_image_read_cipher().

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, int * lossy)

Decode Image data into pixel data. Parameters:

data The encoded pixel data.
size The size, in bytes, of the encoded pixel data.
src_x The starting x coordinate from where to dump the stream.
src_y The starting y coordinate from where to dump the stream.
d A pointer to the pixel surface.
w The expected width in pixels of the pixel surface to decode.
h The expected height in pixels of the pixel surface to decode.
row_stride The length of a pixels line in the destination surface.
alpha A pointer to the int to hold the alpha flag.
compress A pointer to the int to hold the compression amount.
quality A pointer to the int to hold the quality amount.
lossy A pointer to the int to hold the lossiness flag.

Returns:

1 on success, 0 otherwise.

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

The other parameters of the image (alpha, compress etc.) are placed into the values pointed to (they must be supplied). The 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 pixel 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 width and height are measured in pixels and will be greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes that the alpha channel is not used. 1 denotes that it is significant. Compress is filled with the compression value/amount the image was stored with. The quality value is filled with the quality encoding of the image file (0 - 100). The lossy flags is either 0 or 1 as to if the image was encoded lossily or not.

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_decode_to_surface_cipher()

Since:

1.0.2

References eet_data_image_decode_to_surface_cipher().

Referenced by eet_data_image_read_to_surface_cipher().

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

Encode image data for storage or transmission. Parameters:

data A pointer to the image pixel data.
size_ret A pointer to an int to hold the size of the returned data.
w The width of the image in pixels.
h The height of the image in pixels.
alpha The alpha channel flag.
compress The compression amount.
quality The quality encoding amount.
lossy The 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.

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 a pointer to the encoded data that you can free with free() when no longer needed.

See also:

eet_data_image_encode_cipher()

Since:

1.0.0

References eet_data_image_encode_cipher().

Referenced by eet_data_image_write_cipher().

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

Decode Image data header only to get information. Parameters:

data The encoded pixel data.
size The size, in bytes, of the encoded pixel data.
w A pointer to the unsigned int to hold the width in pixels.
h A pointer to the unsigned int to hold the height in pixels.
alpha A pointer to the int to hold the alpha flag.
compress A pointer to the int to hold the compression amount.
quality A pointer to the int to hold the quality amount.
lossy A pointer to the int to hold the lossiness flag.

Returns:

1 on success, 0 on failure.

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

The other parameters of the image (width, height etc.) are placed into the values pointed to (they must be supplied). The 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 pixel 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 width and height are measured in pixels and will be greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes that the alpha channel is not used. 1 denotes that it is significant. Compress is filled with the compression value/amount the image was stored with. The quality value is filled with the quality encoding of the image file (0 - 100). The lossy flags is either 0 or 1 as to if the image was encoded lossily or not.

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

See also:

eet_data_image_header_decode_cipher()

Since:

1.0.0

References eet_data_image_header_decode_cipher().

Referenced by eet_data_image_decode_cipher(), eet_data_image_decode_to_surface_cipher(), and eet_data_image_header_read_cipher().

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, int * lossy)

Read just the header data for an image and dont decode the pixels. Parameters:

ef A valid eet file handle opened for reading.
name Name of the entry. eg: '/base/file_i_want'.
w A pointer to the unsigned int to hold the width in pixels.
h A pointer to the unsigned int to hold the height in pixels.
alpha A pointer to the int to hold the alpha flag.
compress A pointer to the int to hold the compression amount.
quality A pointer to the int to hold the quality amount.
lossy A pointer to the int to hold the lossiness flag.

Returns:

1 on successfull decode, 0 otherwise

This function reads an image from an eet file stored under the named key in the eet file and return a pointer to the decompressed pixel data.

The other parameters of the image (width, height etc.) are placed into the values pointed to (they must be supplied). The 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 width and height are measured in pixels and will be greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes that the alpha channel is not used. 1 denotes that it is significant. Compress is filled with the compression value/amount the image was stored with. The quality value is filled with the quality encoding of the image file (0 - 100). The lossy flags is either 0 or 1 as to if the image was encoded lossily or not.

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_cipher()

Since:

1.0.0

References eet_data_image_header_read_cipher().

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

Read image data from the named key in the eet file. Parameters:

ef A valid eet file handle opened for reading.
name Name of the entry. eg: '/base/file_i_want'.
w A pointer to the unsigned int to hold the width in pixels.
h A pointer to the unsigned int to hold the height in pixels.
alpha A pointer to the int to hold the alpha flag.
compress A pointer to the int to hold the compression amount.
quality A pointer to the int to hold the quality amount.
lossy A pointer to the int to hold the lossiness flag.

Returns:

The image pixel data decoded

This function reads an image from an eet file stored under the named key in the eet file and return a pointer to the decompressed pixel data.

The other parameters of the image (width, height etc.) are placed into the values pointed to (they must be supplied). The 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 width and height are measured in pixels and will be greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes that the alpha channel is not used. 1 denotes that it is significant. Compress is filled with the compression value/amount the image was stored with. The quality value is filled with the quality encoding of the image file (0 - 100). The lossy flags is either 0 or 1 as to if the image was encoded lossily or not.

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_cipher()

Since:

1.0.0

References eet_data_image_read_cipher().

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, int * lossy)

Read image data from the named key in the eet file. Parameters:

ef A valid eet file handle opened for reading.
name Name of the entry. eg: '/base/file_i_want'.
src_x The starting x coordinate from where to dump the stream.
src_y The starting y coordinate from where to dump the stream.
d A pointer to the pixel surface.
w The expected width in pixels of the pixel surface to decode.
h The expected height in pixels of the pixel surface to decode.
row_stride The length of a pixels line in the destination surface.
alpha A pointer to the int to hold the alpha flag.
compress A pointer to the int to hold the compression amount.
quality A pointer to the int to hold the quality amount.
lossy A pointer to the int to hold the lossiness flag.

Returns:

1 on success, 0 otherwise.

This function reads an image from an eet file stored under the named key in the eet file and return a pointer to the decompressed pixel data.

The other parameters of the image (width, height etc.) are placed into the values pointed to (they must be supplied). The 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 width and height are measured in pixels and will be greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes that the alpha channel is not used. 1 denotes that it is significant. Compress is filled with the compression value/amount the image was stored with. The quality value is filled with the quality encoding of the image file (0 - 100). The lossy flags is either 0 or 1 as to if the image was encoded lossily or not.

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_cipher()

Since:

1.0.2

References eet_data_image_read_to_surface_cipher().

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, int lossy)

Write image data to the named key in an eet file. Parameters:

ef A valid eet file handle opened for writing.
name Name of the entry. eg: '/base/file_i_want'.
data A pointer to the image pixel data.
w The width of the image in pixels.
h The height of the image in pixels.
alpha The alpha channel flag.
compress The compression amount.
quality The quality encoding amount.
lossy The 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_write_cipher()

Since:

1.0.0

References eet_data_image_write_cipher().

Author

Generated automatically by Doxygen for Eet from the source code.