「App:Library:LVGL:docs:Others:Snapshot」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
45行目: 45行目:
  
  
API<code>lv_snapshot_take</code>を呼び出すだけで、<code>lv_img_set_src</code>を使用して画像オブジェクトsrcとして設定できる画像記述子を生成できます。
+
API<code style="color: #bb0000;">lv_snapshot_take</code>を呼び出すだけで、<code style="color: #bb0000;">lv_img_set_src</code>を使用して画像オブジェクトsrcとして設定できる画像記述子を生成できます。
  
 
現在、以下のカラーフォーマットのみがサポートされていることに注意してください。
 
現在、以下のカラーフォーマットのみがサポートされていることに注意してください。
90行目: 90行目:
  
  
メモリ<code>lv_snapshot_take</code>の使用は、<code>lv_mem_alloc</code>を使用して動的に割り当てられます。
+
メモリ<code style="color: #bb0000;">lv_snapshot_take</code>の使用は、<code style="color: #bb0000;">lv_mem_alloc</code>を使用して動的に割り当てられます。
  
API<code>lv_snapshot_free</code>を使用して、必要なメモリを解放します。
+
API<code style="color: #bb0000;">lv_snapshot_free</code>を使用して、必要なメモリを解放します。
  
 
これにより、最初に画像データが使用するメモリが解放され、次に画像記述子が解放されます。
 
これにより、最初に画像データが使用するメモリが解放され、次に画像記述子が解放されます。
98行目: 98行目:
 
スナップショットを解放するように注意してください。
 
スナップショットを解放するように注意してください。
  
ただし、イメージオブジェクトは削除しないでください。<code>lv_img_set_src(NULL)</code>メモリを解放する前に、必ずとを使用して、まず画像オブジェクトからメモリのリンクを解除して<code>lv_img_cache_invalidate_src(src)</code>ください。
+
ただし、イメージオブジェクトは削除しないでください。<code style="color: #bb0000;">lv_img_set_src(NULL)</code>メモリを解放する前に、必ずとを使用して、まず画像オブジェクトからメモリのリンクを解除して<code style="color: #bb0000;">lv_img_cache_invalidate_src(src)</code>ください。
  
 
以下のコードスニペットは、このAPIの使用法を説明しています。
 
以下のコードスニペットは、このAPIの使用法を説明しています。
 
   void  update_snapshot (lv_obj_t  *  obj 、 lv_obj_t  *  img_snapshot )
 
   void  update_snapshot (lv_obj_t  *  obj 、 lv_obj_t  *  img_snapshot )
 
   {  
 
   {  
       lv_img_dsc_t * スナップショット =  (void * )lv_img_get_src (img_snapshot );
+
       lv_img_dsc_t * スナップショット =  (void * )lv_img_get_src (img_snapshot )
 
       if (snapshot ) {  
 
       if (snapshot ) {  
           lv_snapshot_free (snapshot );
+
           lv_snapshot_free (snapshot )
 
       }
 
       }
       スナップショット =  lv_snapshot_take (obj 、 LV_IMG_CF_TRUE_COLOR_ALPHA );
+
       スナップショット =  lv_snapshot_take (obj 、 LV_IMG_CF_TRUE_COLOR_ALPHA )
 
       lv_img_set_src (img_snapshot 、 snapshot);
 
       lv_img_set_src (img_snapshot 、 snapshot);
 
   }
 
   }
127行目: 127行目:
  
 
It's recommended to use API <code style="color: #bb0000;">lv_snapshot_buf_size_needed</code> to check the needed buffer size in byte firstly and resize the buffer accordingly.
 
It's recommended to use API <code style="color: #bb0000;">lv_snapshot_buf_size_needed</code> to check the needed buffer size in byte firstly and resize the buffer accordingly.
|スナップショットを時々更新する必要がある場合、または単に呼び出し元がメモリを提供する<code>lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size);</code>場合は、この場合はAPIを使用してください。メモリを割り当て/解放するのは発信者の責任です。
+
|スナップショットを時々更新する必要がある場合、または単に呼び出し元がメモリを提供する<code style="color: #bb0000;">lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size);</code>場合は、この場合はAPIを使用してください。メモリを割り当て/解放するのは発信者の責任です。
  
スナップショットが正常に生成されると、イメージ記述子が更新され、イメージデータが提供されたに保存され<code>buf</code>ます。
+
スナップショットが正常に生成されると、イメージ記述子が更新され、イメージデータが提供されたに保存され<code style="color: #bb0000;">buf</code>ます。
  
 
提供されたバッファが十分でない場合、スナップショットが失敗する可能性があることに注意してください。これは、オブジェクトサイズが変更されたときに発生する可能性があります。
 
提供されたバッファが十分でない場合、スナップショットが失敗する可能性があることに注意してください。これは、オブジェクトサイズが変更されたときに発生する可能性があります。
  
API<code>lv_snapshot_buf_size_needed</code>を使用して、最初に必要なバッファサイズをバイト単位で確認し、それに応じてバッファのサイズを変更することをお勧めします。
+
API<code style="color: #bb0000;">lv_snapshot_buf_size_needed</code>を使用して、最初に必要なバッファサイズをバイト単位で確認し、それに応じてバッファのサイズを変更することをお勧めします。
 
|}
 
|}
 
:[[App:Library:LVGL:docs:Others|戻る : Previous]]
 
:[[App:Library:LVGL:docs:Others|戻る : Previous]]
162行目: 162行目:
 
Functions
 
Functions
  
<span style="background-color: #e7f2fa; color: #2980b9;">[https://docs.lvgl.io/8.2/overview/image.html#_CPPv412lv_img_dsc_t '''lv_img_dsc_t'''] *lv_snapshot_take([https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv48lv_obj_t '''lv_obj_t'''] *obj, [https://docs.lvgl.io/8.2/overview/image.html#_CPPv411lv_img_cf_t '''lv_img_cf_t'''] cf) </span>
+
<span style="background-color: #e7f2facolor: #2980b9;"> *lv_snapshot_take( *obj, cf) </span>
 
: Take snapshot for object with its children.
 
: Take snapshot for object with its children.
 
:'''Parameters'''
 
:'''Parameters'''
170行目: 170行目:
 
:: a pointer to an image descriptor, or NULL if failed.
 
:: a pointer to an image descriptor, or NULL if failed.
  
<span style="background-color: #e7f2fa; color: #2980b9;">void lv_snapshot_free([https://docs.lvgl.io/8.2/overview/image.html#_CPPv412lv_img_dsc_t '''lv_img_dsc_t'''] *dsc) </span>
+
<span style="background-color: #e7f2facolor: #2980b9;">void lv_snapshot_free( *dsc) </span>
: Free the snapshot image returned by [https://docs.lvgl.io/8.2/others/snapshot.html#lv__snapshot_8h_1ac45005ac1ae1e130e2f62ed27237fe25 '''lv_snapshot_take''']  It will firstly free the data image takes, then the image descriptor.
+
: Free the snapshot image returned by   It will firstly free the data image takes, then the image descriptor.
 
:'''Parameters'''
 
:'''Parameters'''
 
:: '''dsc''' -- The image descriptor generated by lv_snapshot_take.
 
:: '''dsc''' -- The image descriptor generated by lv_snapshot_take.
  
<span style="background-color: #e7f2fa; color: #2980b9;">uint32_t lv_snapshot_buf_size_needed([https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv48lv_obj_t '''lv_obj_t'''] *obj, [https://docs.lvgl.io/8.2/overview/image.html#_CPPv411lv_img_cf_t '''lv_img_cf_t'''] cf) </span>
+
<span style="background-color: #e7f2facolor: #2980b9;">uint32_t lv_snapshot_buf_size_needed( *obj, cf) </span>
 
: Get the buffer needed for object snapshot image.
 
: Get the buffer needed for object snapshot image.
 
:'''Parameters'''
 
:'''Parameters'''
183行目: 183行目:
 
:: the buffer size needed in bytes
 
:: the buffer size needed in bytes
  
<span style="background-color: #e7f2fa; color: #2980b9;">lv_res_t lv_snapshot_take_to_buf([https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv48lv_obj_t '''lv_obj_t'''] *obj, [https://docs.lvgl.io/8.2/overview/image.html#_CPPv411lv_img_cf_t '''lv_img_cf_t'''] cf, [https://docs.lvgl.io/8.2/overview/image.html#_CPPv412lv_img_dsc_t '''lv_img_dsc_t'''] *dsc, void *buf, uint32_t buff_size) </span>
+
<span style="background-color: #e7f2facolor: #2980b9;">lv_res_t lv_snapshot_take_to_buf( *obj, cf, *dsc, void *buf, uint32_t buff_size) </span>
 
: Take snapshot for object with its children, save image info to provided buffer.
 
: Take snapshot for object with its children, save image info to provided buffer.
 
:'''Parameters'''
 
:'''Parameters'''

2022年6月29日 (水) 10:37時点における版

https://docs.lvgl.io/8.2/others/snapshot.html

英文 自動翻訳


Snapshot

英文 自動翻訳

Snapshot provides APIs to take snapshot image for LVGL object together with its children.

The image will look exactly like the object.

スナップショットは、LVGLオブジェクトのスナップショットイメージをその子と一緒に取得するためのAPIを提供します。

画像はオブジェクトとまったく同じように見えます。

戻る : Previous


Usage

英文 自動翻訳

Simply call API lv_snapshot_take to generate the image descriptor which can be set as image object src using lv_img_set_src.

Note, only below color formats are supported for now:

  • LV_IMG_CF_TRUE_COLOR_ALPHA
  • LV_IMG_CF_ALPHA_1BIT
  • LV_IMG_CF_ALPHA_2BIT
  • LV_IMG_CF_ALPHA_4BIT
  • LV_IMG_CF_ALPHA_8BIT


APIlv_snapshot_takeを呼び出すだけで、lv_img_set_srcを使用して画像オブジェクトsrcとして設定できる画像記述子を生成できます。

現在、以下のカラーフォーマットのみがサポートされていることに注意してください。

  • LV_IMG_CF_TRUE_COLOR_ALPHA
  • LV_IMG_CF_ALPHA_1BIT
  • LV_IMG_CF_ALPHA_2BIT
  • LV_IMG_CF_ALPHA_4BIT
  • LV_IMG_CF_ALPHA_8BIT
戻る : Previous


Free the Image

英文 自動翻訳

The memory lv_snapshot_take uses are dynamically allocated using lv_mem_alloc.

Use API lv_snapshot_free to free the memory it takes.

This will firstly free memory the image data takes, then the image descriptor.

Take caution to free the snapshot but not delete the image object.

Before free the memory, be sure to firstly unlink it from image object, using lv_img_set_src(NULL) and lv_img_cache_invalidate_src(src).

Below code snippet explains usage of this API.

 void update_snapshot(lv_obj_t * obj, lv_obj_t * img_snapshot)
 {
     lv_img_dsc_t* snapshot = (void*)lv_img_get_src(img_snapshot);
     if(snapshot) {
         lv_snapshot_free(snapshot);
     }
     snapshot = lv_snapshot_take(obj, LV_IMG_CF_TRUE_COLOR_ALPHA);
     lv_img_set_src(img_snapshot, snapshot);
 }


メモリlv_snapshot_takeの使用は、lv_mem_allocを使用して動的に割り当てられます。

APIlv_snapshot_freeを使用して、必要なメモリを解放します。

これにより、最初に画像データが使用するメモリが解放され、次に画像記述子が解放されます。

スナップショットを解放するように注意してください。

ただし、イメージオブジェクトは削除しないでください。lv_img_set_src(NULL)メモリを解放する前に、必ずとを使用して、まず画像オブジェクトからメモリのリンクを解除してlv_img_cache_invalidate_src(src)ください。

以下のコードスニペットは、このAPIの使用法を説明しています。

 void  update_snapshot (lv_obj_t  *  obj 、 lv_obj_t  *  img_snapshot )
 { 
     lv_img_dsc_t * スナップショット =  (void * )lv_img_get_src (img_snapshot )
     if (snapshot ) { 
         lv_snapshot_free (snapshot )
     }
     スナップショット =  lv_snapshot_take (obj 、 LV_IMG_CF_TRUE_COLOR_ALPHA )
     lv_img_set_src (img_snapshot 、 snapshot);
 }
戻る : Previous

Use Existing Buffer

英文 自動翻訳

If the snapshot needs update now and then, or simply caller provides memory, use API lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size); for this case. It's caller's responsibility to alloc/free the memory.

If snapshot is generated successfully, the image descriptor is updated and image data will be stored to provided buf.


Note that snapshot may fail if provided buffer is not enough, which may happen when object size changes.

It's recommended to use API lv_snapshot_buf_size_needed to check the needed buffer size in byte firstly and resize the buffer accordingly.

スナップショットを時々更新する必要がある場合、または単に呼び出し元がメモリを提供するlv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size);場合は、この場合はAPIを使用してください。メモリを割り当て/解放するのは発信者の責任です。

スナップショットが正常に生成されると、イメージ記述子が更新され、イメージデータが提供されたに保存されbufます。

提供されたバッファが十分でない場合、スナップショットが失敗する可能性があることに注意してください。これは、オブジェクトサイズが変更されたときに発生する可能性があります。

APIlv_snapshot_buf_size_neededを使用して、最初に必要なバッファサイズをバイト単位で確認し、それに応じてバッファのサイズを変更することをお勧めします。

戻る : Previous



Example

Simple snapshot example

英文 自動翻訳

LVGL docs others snapshot 01.png

戻る : Previous


API

英文 自動翻訳

Functions

*lv_snapshot_take( *obj, cf)

Take snapshot for object with its children.
Parameters
  • obj -- The object to generate snapshot.
  • cf -- color format for generated image.
Returns
a pointer to an image descriptor, or NULL if failed.

void lv_snapshot_free( *dsc)

Free the snapshot image returned by It will firstly free the data image takes, then the image descriptor.
Parameters
dsc -- The image descriptor generated by lv_snapshot_take.

uint32_t lv_snapshot_buf_size_needed( *obj, cf)

Get the buffer needed for object snapshot image.
Parameters
  • obj -- The object to generate snapshot.
  • cf -- color format for generated image.
Returns
the buffer size needed in bytes

lv_res_t lv_snapshot_take_to_buf( *obj, cf, *dsc, void *buf, uint32_t buff_size)

Take snapshot for object with its children, save image info to provided buffer.
Parameters
  • obj -- The object to generate snapshot.
  • cf -- color format for generated image.
  • dsc -- image descriptor to store the image result.
  • buff -- the buffer to store image data.
  • buff_size -- provided buffer size in bytes.
Returns
LV_RES_OK on success, LV_RES_INV on error.


機能

lv_img_dsc_t * lv_snapshot_take( lv_obj_t * obj、 lv_img_cf_t cf)

オブジェクトとその子のスナップショットを作成します。
パラメーター
  • obj-スナップショットを生成するオブジェクト。
  • cf--生成された画像のカラーフォーマット。
戻り値
画像記述子へのポインタ。失敗した場合はNULL。

void lv_snapshot_free(lv_img_dsc_t * dsc)

スナップショットは、LVGLオブジェクトのスナップショットイメージをその子と一緒に取得するためのAPIを提供します。lv_snapshot_takeによって返されたスナップショットイメージ を解放します。最初にデータイメージが取得し、次にイメージ記述子が解放されます。
パラメーター
dsc -lv_snapshot_takeによって生成された画像記述子。

uint32_t lv_snapshot_buf_size_needed(lv_obj_t * obj、lv_img_cf_t cf)

オブジェクトスナップショットイメージに必要なバッファを取得します。
パラメーター
  • obj-スナップショットを生成するオブジェクト。
  • cf--生成された画像のカラーフォーマット。
戻り値
必要なバッファサイズ(バイト単位)

lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj、lv_img_cf_t cf、lv_img_dsc_t * dsc、void * buf、uint32_t buff_size)

オブジェクトとその子のスナップショットを作成し、提供されたバッファに画像情報を保存します。
パラメーター
  • obj-スナップショットを生成するオブジェクト。
  • cf--生成された画像のカラーフォーマット。
  • dsc--画像の結果を保存する画像記述子。
  • buff--画像データを保存するためのバッファ。
  • buff_size-指定されたバッファサイズ(バイト単位)。
戻り値
成功した場合はLV_RES_OK、エラーの場合はLV_RES_INV。
戻る : Previous