# lv_image_decoder_private.h (/api/draw/lv_image_decoder_private_h)



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

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

Functions [#functions]

<ApiMember kind="function" name="lv_image_decoder_init" file="draw/lv_image_decoder_private.h" line="129" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/draw/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`   | <ApiLink name="uint32_t" /> | Image cache size in bytes. 0 to disable cache.             |
  | `image_header_count` | <ApiLink name="uint32_t" /> | Number of header cache entries. 0 to disable header cache. |
</ApiMember>

<ApiMember kind="function" name="lv_image_decoder_deinit" file="draw/lv_image_decoder_private.h" line="134" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/draw/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>

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` | <ApiLink name="bool" /> | Whether stride should be aligned                                                        |
  | `premultiply`  | <ApiLink name="bool" /> | Whether image should be premultiplied or not after decoding                             |
  | `no_cache`     | <ApiLink name="bool" /> | When set, decoded image won't be put to cache, and decoder open will also ignore cache. |
  | `use_indexed`  | <ApiLink name="bool" /> | Decoded indexed image as is. Convert to ARGB8888 if false.                              |
  | `flush_cache`  | <ApiLink name="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` | <ApiLink name="uint32_t" />                                          |                                                                                                                                                |
  | `time_to_open` | <ApiLink name="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_image_decoder.h&#x22;, &#x22;lv_cache.h&#x22;]" includedBy="[&#x22;lv_draw_nema_gfx.h&#x22;]" transitiveIncludes="[&#x22;lv_area.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_cache_class.h&#x22;, &#x22;lv_cache_entry.h&#x22;, &#x22;lv_cache_instance.h&#x22;, &#x22;lv_cache_lru_ll.h&#x22;, &#x22;lv_cache_lru_rb.h&#x22;, &#x22;lv_cache_private.h&#x22;, &#x22;lv_cache_sc_da.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_internal.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_fs.h&#x22;, &#x22;lv_image_cache.h&#x22;, &#x22;lv_image_dsc.h&#x22;, &#x22;lv_image_header_cache.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_os.h&#x22;, &#x22;lv_os_private.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_pthread.h&#x22;, &#x22;lv_string.h&#x22;, &#x22;lv_types.h&#x22;]" />
