Commit 6ee022a398bf962307627ee58be589d550d49682

Authored by Eunki Hong
Committed by Eunki, Hong
1 parent 738d92b0

Add EncodedImageBuffer demo with SVG and Lottie

Let we make image view encoded image buffer example can test
VECTOR_IMAGE type and ANIMATED_VECTOR_IMAGE type.

Change-Id: I7cd6485ed7908b12880f6e6b94c5191d54dd9075
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
examples/image-view-encoded-image-buffer/image-view-encoded-image-buffer-example.cpp
1 /* 1 /*
2 - * Copyright (c) 2021 Samsung Electronics Co., Ltd. 2 + * Copyright (c) 2023 Samsung Electronics Co., Ltd.
3 * 3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License. 5 * you may not use this file except in compliance with the License.
@@ -16,12 +16,15 @@ @@ -16,12 +16,15 @@
16 */ 16 */
17 17
18 #include <dali-toolkit/dali-toolkit.h> 18 #include <dali-toolkit/dali-toolkit.h>
  19 +#include <dali-toolkit/devel-api/controls/control-devel.h>
  20 +#include <dali-toolkit/devel-api/visuals/animated-vector-image-visual-actions-devel.h>
19 #include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h> 21 #include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
20 #include <dali-toolkit/public-api/image-loader/image-url.h> 22 #include <dali-toolkit/public-api/image-loader/image-url.h>
21 #include <dali-toolkit/public-api/image-loader/image.h> 23 #include <dali-toolkit/public-api/image-loader/image.h>
22 #include <dali/dali.h> 24 #include <dali/dali.h>
23 #include <dali/public-api/adaptor-framework/encoded-image-buffer.h> 25 #include <dali/public-api/adaptor-framework/encoded-image-buffer.h>
24 #include <string> 26 #include <string>
  27 +
25 #include "shared/view.h" 28 #include "shared/view.h"
26 29
27 using namespace Dali; 30 using namespace Dali;
@@ -37,10 +40,17 @@ const char* IMAGE_PATH[] = { @@ -37,10 +40,17 @@ const char* IMAGE_PATH[] = {
37 DEMO_IMAGE_DIR "gallery-small-23.jpg", 40 DEMO_IMAGE_DIR "gallery-small-23.jpg",
38 DEMO_IMAGE_DIR "woodEffect.jpg", 41 DEMO_IMAGE_DIR "woodEffect.jpg",
39 DEMO_IMAGE_DIR "wood.png", // 32bits image 42 DEMO_IMAGE_DIR "wood.png", // 32bits image
  43 + // DEMO_IMAGE_DIR "heartsframe.9.png", ///< Not implemented yet.
  44 + DEMO_IMAGE_DIR "dog-anim.webp",
  45 + DEMO_IMAGE_DIR "World.svg", // svg image
  46 + DEMO_IMAGE_DIR "insta_camera.json" // lottie image
40 }; 47 };
41 48
42 const unsigned int NUMBER_OF_RESOURCES = sizeof(IMAGE_PATH) / sizeof(char*); 49 const unsigned int NUMBER_OF_RESOURCES = sizeof(IMAGE_PATH) / sizeof(char*);
43 50
  51 +const unsigned int VECTOR_IMAGE_INDEX = NUMBER_OF_RESOURCES - 2u;
  52 +const unsigned int ANIMATED_VECTOR_IMAGE_INDEX = NUMBER_OF_RESOURCES - 1u;
  53 +
44 const unsigned int NUMBER_OF_IMAGES_ROW = 3; 54 const unsigned int NUMBER_OF_IMAGES_ROW = 3;
45 const unsigned int NUMBER_OF_IMAGES_COLUMN = 2; 55 const unsigned int NUMBER_OF_IMAGES_COLUMN = 2;
46 const unsigned int NUMBER_OF_IMAGES = NUMBER_OF_IMAGES_ROW * NUMBER_OF_IMAGES_COLUMN; 56 const unsigned int NUMBER_OF_IMAGES = NUMBER_OF_IMAGES_ROW * NUMBER_OF_IMAGES_COLUMN;
@@ -121,9 +131,23 @@ public: @@ -121,9 +131,23 @@ public:
121 private: 131 private:
122 void UpdateImageUrl() 132 void UpdateImageUrl()
123 { 133 {
124 - mImageBuffer = ConvertFileToEncodedImageBuffer(IMAGE_PATH[mImageIndex]);  
125 - mImageUrl = Image::GenerateUrl(mImageBuffer); 134 + if(mImageIndex < NUMBER_OF_RESOURCES)
  135 + {
  136 + mImageBuffer = ConvertFileToEncodedImageBuffer(IMAGE_PATH[mImageIndex]);
  137 + }
  138 +
  139 + if(mImageIndex == VECTOR_IMAGE_INDEX)
  140 + {
  141 + mImageBuffer.SetImageType(EncodedImageBuffer::ImageType::VECTOR_IMAGE);
  142 + }
  143 + else if(mImageIndex == ANIMATED_VECTOR_IMAGE_INDEX)
  144 + {
  145 + mImageBuffer.SetImageType(EncodedImageBuffer::ImageType::ANIMATED_VECTOR_IMAGE);
  146 + }
  147 +
  148 + mImageUrl = Image::GenerateUrl(mImageBuffer);
126 } 149 }
  150 +
127 void UpdateImageViews() 151 void UpdateImageViews()
128 { 152 {
129 for(int i = 0; i < static_cast<int>(NUMBER_OF_IMAGES_ROW); i++) 153 for(int i = 0; i < static_cast<int>(NUMBER_OF_IMAGES_ROW); i++)
@@ -168,6 +192,11 @@ private: @@ -168,6 +192,11 @@ private:
168 192
169 view.SetProperty(ImageView::Property::IMAGE, imagePropertyMap); 193 view.SetProperty(ImageView::Property::IMAGE, imagePropertyMap);
170 194
  195 + if(mImageIndex == ANIMATED_VECTOR_IMAGE_INDEX)
  196 + {
  197 + DevelControl::DoAction(view, ImageView::Property::IMAGE, DevelAnimatedVectorImageVisual::Action::PLAY, Property::Value());
  198 + }
  199 +
171 return view; 200 return view;
172 } 201 }
173 202