「App:Library:LVGL:docs:3rd party libraries:JPG decoder」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
(ページの作成:「https://docs.lvgl.io/8.2/libs/sjpg.html __NOTOC__ {| class="wikitable" !英文 !自動翻訳 |- | | |} ---- :App:Library:LVGL:docs:3rd party libraries|戻る :…」)
 
8行目: 8行目:
 
|
 
|
 
|}
 
|}
 +
 +
= JPG decoder =
 +
Allow the use of JPG images in LVGL. Besides that it also allows the use of a custom format, called Split JPG (SJPG), which can be decoded in more optimal way on embedded systems.
 +
 +
== Overview ==
 +
 +
* Supports both normal JPG and the custom SJPG formats.
 +
* Decoding normal JPG consumes RAM with the size fo the whole uncompressed image (recommended only for devices with more RAM)
 +
* SJPG is a custom format based on "normal" JPG and specially made for LVGL.
 +
* SJPG is 'split-jpeg' which is a bundle of small jpeg fragments with an sjpg header.
 +
* SJPG size will be almost comparable to the jpg file or might be a slightly larger.
 +
* File read from file and c-array are implemented.
 +
* SJPEG frame fragment cache enables fast fetching of lines if available in cache.
 +
* By default the sjpg image cache will be image width * 2 * 16 bytes (can be modified)
 +
* Currently only 16 bit image format is supported (TODO)
 +
* Only the required partion of the JPG and SJPG images are decoded, therefore they can't be zoomed or rotated.
 +
 +
== Usage ==
 +
If enabled in <code>lv_conf.h</code> by <code>LV_USE_SJPG</code> LVGL will register a new image decoder automatically so JPG and SJPG files can be directly used as image sources. For example:
 +
lv_img_set_src(my_img, "S:path/to/picture.jpg");
 +
Note that, a file system driver needs to registered to open images from files. Read more about it here or just enable one in <code>lv_conf.h</code> with <code>LV_USE_FS_...</code>
 +
 +
== Converter ==
 +
 +
=== Converting JPG to C array ===
 +
 +
* Use lvgl online tool <nowiki>https://lvgl.io/tools/imageconverter</nowiki>
 +
* Color format = RAW, output format = C Array
 +
 +
=== Converting JPG to SJPG ===
 +
python3 and the PIL library required. (PIL can be installed with <code>pip3 install pillow</code>)
 +
 +
To create SJPG from JPG:
 +
 +
* Copy the image to convert into <code>lvgl/scripts</code>
 +
* <code>cd lvgl/scripts</code>
 +
* <code>python3 jpg_to_sjpg.py image_to_convert.jpg</code>. It creates both a C files and an SJPG image.
 +
 +
The expected result is:
 +
Conversion started...
 +
 +
Input:
 +
        image_to_convert.jpg
 +
        RES = 640 x 480
 +
 +
Output:
 +
        Time taken = 1.66 sec
 +
        bin size = 77.1 KB
 +
        walpaper.sjpg          (bin file)
 +
        walpaper.c              (c array)
 +
 +
All good!
 +
 +
== Example ==
 +
 +
=== Load an SJPG image ===
 +
[[ファイル:LVGL docs others gridnav 03.png|サムネイル]]
 +
 +
 +
https://docs.lvgl.io/8.2/libs/sjpg.html#load-an-sjpg-image
 +
 +
----
 +
 +
== API ==
 +
Functions
 +
 +
; <span id="_CPPv318lv_split_jpeg_initv"></span><span id="_CPPv218lv_split_jpeg_initv"></span><span id="lv_split_jpeg_init__void"></span><span id="lv__sjpg_8h_1a0b3cc161e2b41c694997f6b4ed9e9240" class="target"></span>void lv_split_jpeg_init(void)
 +
  
  

2022年6月28日 (火) 13:00時点における版

https://docs.lvgl.io/8.2/libs/sjpg.html

英文 自動翻訳

JPG decoder

Allow the use of JPG images in LVGL. Besides that it also allows the use of a custom format, called Split JPG (SJPG), which can be decoded in more optimal way on embedded systems.

Overview

  • Supports both normal JPG and the custom SJPG formats.
  • Decoding normal JPG consumes RAM with the size fo the whole uncompressed image (recommended only for devices with more RAM)
  • SJPG is a custom format based on "normal" JPG and specially made for LVGL.
  • SJPG is 'split-jpeg' which is a bundle of small jpeg fragments with an sjpg header.
  • SJPG size will be almost comparable to the jpg file or might be a slightly larger.
  • File read from file and c-array are implemented.
  • SJPEG frame fragment cache enables fast fetching of lines if available in cache.
  • By default the sjpg image cache will be image width * 2 * 16 bytes (can be modified)
  • Currently only 16 bit image format is supported (TODO)
  • Only the required partion of the JPG and SJPG images are decoded, therefore they can't be zoomed or rotated.

Usage

If enabled in lv_conf.h by LV_USE_SJPG LVGL will register a new image decoder automatically so JPG and SJPG files can be directly used as image sources. For example:

lv_img_set_src(my_img, "S:path/to/picture.jpg");

Note that, a file system driver needs to registered to open images from files. Read more about it here or just enable one in lv_conf.h with LV_USE_FS_...

Converter

Converting JPG to C array

  • Use lvgl online tool https://lvgl.io/tools/imageconverter
  • Color format = RAW, output format = C Array

Converting JPG to SJPG

python3 and the PIL library required. (PIL can be installed with pip3 install pillow)

To create SJPG from JPG:

  • Copy the image to convert into lvgl/scripts
  • cd lvgl/scripts
  • python3 jpg_to_sjpg.py image_to_convert.jpg. It creates both a C files and an SJPG image.

The expected result is:

Conversion started...

Input:
        image_to_convert.jpg
        RES = 640 x 480

Output:
        Time taken = 1.66 sec
        bin size = 77.1 KB
        walpaper.sjpg           (bin file)
        walpaper.c              (c array)

All good!

Example

Load an SJPG image

LVGL docs others gridnav 03.png


https://docs.lvgl.io/8.2/libs/sjpg.html#load-an-sjpg-image


API

Functions

void lv_split_jpeg_init(void)






戻る : Previous