「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/scriptspython3 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
https://docs.lvgl.io/8.2/libs/sjpg.html#load-an-sjpg-image
API
Functions
- void lv_split_jpeg_init(void)