# lv_image_decoder_private.h (/api/private/image/lv_image_decoder_private_h)



<RelatedHeaders name="lv_image_decoder.h" isPrivate="true" />

<ApiSummary functions="3" structs="5" />

Functions [#functions]

<ApiMember kind="function" name="lv_image_decoder_init" file="private/image/lv_image_decoder_private.h" line="129" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/lv_image_decoder_private.h#L129">
  lv_image_decoder_init [#lv_image_decoder_init]

  Initialize the image decoder module

  ```c title=" " lineNumbers=1
  void lv_image_decoder_init(uint32_t image_cache_size, uint32_t image_header_count)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name                 | Type       | Description                                                |
  | -------------------- | ---------- | ---------------------------------------------------------- |
  | `image_cache_size`   | `uint32_t` | Image cache size in bytes. 0 to disable cache.             |
  | `image_header_count` | `uint32_t` | Number of header cache entries. 0 to disable header cache. |
</ApiMember>

<ApiMember kind="function" name="lv_image_decoder_deinit" file="private/image/lv_image_decoder_private.h" line="134" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/lv_image_decoder_private.h#L134">
  lv_image_decoder_deinit [#lv_image_decoder_deinit]

  Deinitialize the image decoder module

  ```c title=" " lineNumbers=1
  void lv_image_decoder_deinit(void)
  ```
</ApiMember>

<ApiMember kind="function" name="lv_image_decoder_add_to_cache" file="private/image/lv_image_decoder_private.h" line="136" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/lv_image_decoder_private.h#L136">
  lv_image_decoder_add_to_cache [#lv_image_decoder_add_to_cache]

  ```c title=" " lineNumbers=1
  lv_cache_entry_t * lv_image_decoder_add_to_cache(lv_image_decoder_t *decoder, lv_image_cache_data_t *search_key, const lv_draw_buf_t *decoded, void *user_data)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name         | Type                                                                       |
  | ------------ | -------------------------------------------------------------------------- |
  | `decoder`    | <ApiLink name="lv_image_decoder_t" display="lv_image_decoder_t *" />       |
  | `search_key` | <ApiLink name="lv_image_cache_data_t" display="lv_image_cache_data_t *" /> |
  | `decoded`    | <ApiLink name="lv_draw_buf_t" display="const lv_draw_buf_t *" />           |
  | `user_data`  | `void *`                                                                   |
</ApiMember>

Structs [#structs]

<ApiMember kind="struct" name="_lv_image_decoder_args_t">
  \_lv_image_decoder_args_t [#_lv_image_decoder_args_t]

  Image decoder args. It determines how to decoder an image, e.g. whether to premultiply the alpha or not. It should be passed to lv\_img\_decoder\_open() function. If NULL is provided, default args are used.

  Default args: all field are zero or false.

  | Member         | Type   | Description                                                                             |
  | -------------- | ------ | --------------------------------------------------------------------------------------- |
  | `stride_align` | `bool` | Whether stride should be aligned                                                        |
  | `premultiply`  | `bool` | Whether image should be premultiplied or not after decoding                             |
  | `no_cache`     | `bool` | When set, decoded image won't be put to cache, and decoder open will also ignore cache. |
  | `use_indexed`  | `bool` | Decoded indexed image as is. Convert to ARGB8888 if false.                              |
  | `flush_cache`  | `bool` | Whether to flush the data cache after decoding                                          |
</ApiMember>

<ApiMember kind="struct" name="_lv_image_decoder_t">
  \_lv_image_decoder_t [#_lv_image_decoder_t]

  | Member           | Type                                              | Description |
  | ---------------- | ------------------------------------------------- | ----------- |
  | `info_cb`        | <ApiLink name="lv_image_decoder_info_f_t" />      |             |
  | `open_cb`        | <ApiLink name="lv_image_decoder_open_f_t" />      |             |
  | `get_area_cb`    | <ApiLink name="lv_image_decoder_get_area_cb_t" /> |             |
  | `close_cb`       | <ApiLink name="lv_image_decoder_close_f_t" />     |             |
  | `custom_draw_cb` | <ApiLink name="lv_image_decoder_custom_draw_t" /> |             |
  | `name`           | `const char *`                                    |             |
  | `user_data`      | `void *`                                          |             |
</ApiMember>

<ApiMember kind="struct" name="_lv_image_cache_data_t">
  \_lv_image_cache_data_t [#_lv_image_cache_data_t]

  | Member      | Type                                                                       | Description |
  | ----------- | -------------------------------------------------------------------------- | ----------- |
  | `slot`      | <ApiLink name="lv_cache_slot_size_t" />                                    |             |
  | `src`       | `const void *`                                                             |             |
  | `src_type`  | <ApiLink name="lv_image_src_t" />                                          |             |
  | `decoded`   | <ApiLink name="lv_draw_buf_t" display="const lv_draw_buf_t *" />           |             |
  | `decoder`   | <ApiLink name="lv_image_decoder_t" display="const lv_image_decoder_t *" /> |             |
  | `user_data` | `void *`                                                                   |             |
</ApiMember>

<ApiMember kind="struct" name="_lv_image_header_cache_data_t">
  \_lv_image_header_cache_data_t [#_lv_image_header_cache_data_t]

  | Member     | Type                                                                 | Description |
  | ---------- | -------------------------------------------------------------------- | ----------- |
  | `src`      | `const void *`                                                       |             |
  | `src_type` | <ApiLink name="lv_image_src_t" />                                    |             |
  | `header`   | <ApiLink name="lv_image_header_t" />                                 |             |
  | `decoder`  | <ApiLink name="lv_image_decoder_t" display="lv_image_decoder_t *" /> |             |
</ApiMember>

<ApiMember kind="struct" name="_lv_image_decoder_dsc_t">
  \_lv_image_decoder_dsc_t [#_lv_image_decoder_dsc_t]

  Describe an image decoding session. Stores data about the decoding

  | Member         | Type                                                                 | Description                                                                                                                                    |
  | -------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
  | `decoder`      | <ApiLink name="lv_image_decoder_t" display="lv_image_decoder_t *" /> | The decoder which was able to open the image source                                                                                            |
  | `args`         | <ApiLink name="lv_image_decoder_args_t" />                           | A copy of parameters of how this image is decoded                                                                                              |
  | `src`          | `const void *`                                                       | The image source. A file path like "S:my\_img.png" or pointer to an <ApiLink name="lv_image_dsc_t" /> variable                                 |
  | `src_type`     | <ApiLink name="lv_image_src_t" />                                    | Type of the source: file or variable. Can be set in `open` function if required                                                                |
  | `file`         | <ApiLink name="lv_fs_file_t" />                                      |                                                                                                                                                |
  | `header`       | <ApiLink name="lv_image_header_t" />                                 | Info about the opened image: color format, size, etc. MUST be set in `open` function                                                           |
  | `decoded`      | <ApiLink name="lv_draw_buf_t" display="const lv_draw_buf_t *" />     | Pointer to a draw buffer where the image's data (pixels) are stored in a decoded, plain format. MUST be set in `open` or `get_area_cb`function |
  | `palette`      | <ApiLink name="lv_color32_t" display="const lv_color32_t *" />       |                                                                                                                                                |
  | `palette_size` | `uint32_t`                                                           |                                                                                                                                                |
  | `time_to_open` | `uint32_t`                                                           | How much time did it take to open the image. \[ms] If not set `lv_image_cache` will measure and set the time to open                           |
  | `error_msg`    | `const char *`                                                       | A text to display instead of the image when the image can't be opened. Can be set in `open` function or set NULL.                              |
  | `cache`        | <ApiLink name="lv_cache_t" display="lv_cache_t *" />                 |                                                                                                                                                |
  | `cache_entry`  | <ApiLink name="lv_cache_entry_t" display="lv_cache_entry_t *" />     | Point to cache entry information                                                                                                               |
  | `user_data`    | `void *`                                                             | Store any custom data here is required                                                                                                         |
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_cache.h&#x22;]" includedBy="[&#x22;lv_draw_nema_gfx.h&#x22;, &#x22;lvgl_private.h&#x22;]" transitiveIncludes="[&#x22;lv_cache_class.h&#x22;, &#x22;lv_cache_lru_ll.h&#x22;, &#x22;lv_cache_lru_rb.h&#x22;, &#x22;lv_cache_sc_da.h&#x22;, &#x22;lv_image_cache.h&#x22;, &#x22;lv_iter_private.h&#x22;, &#x22;lv_os_private.h&#x22;]" />
