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 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 5 * you may not use this file except in compliance with the License.
... ... @@ -16,12 +16,15 @@
16 16 */
17 17  
18 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 21 #include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
20 22 #include <dali-toolkit/public-api/image-loader/image-url.h>
21 23 #include <dali-toolkit/public-api/image-loader/image.h>
22 24 #include <dali/dali.h>
23 25 #include <dali/public-api/adaptor-framework/encoded-image-buffer.h>
24 26 #include <string>
  27 +
25 28 #include "shared/view.h"
26 29  
27 30 using namespace Dali;
... ... @@ -37,10 +40,17 @@ const char* IMAGE_PATH[] = {
37 40 DEMO_IMAGE_DIR "gallery-small-23.jpg",
38 41 DEMO_IMAGE_DIR "woodEffect.jpg",
39 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 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 54 const unsigned int NUMBER_OF_IMAGES_ROW = 3;
45 55 const unsigned int NUMBER_OF_IMAGES_COLUMN = 2;
46 56 const unsigned int NUMBER_OF_IMAGES = NUMBER_OF_IMAGES_ROW * NUMBER_OF_IMAGES_COLUMN;
... ... @@ -121,9 +131,23 @@ public:
121 131 private:
122 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 151 void UpdateImageViews()
128 152 {
129 153 for(int i = 0; i < static_cast<int>(NUMBER_OF_IMAGES_ROW); i++)
... ... @@ -168,6 +192,11 @@ private:
168 192  
169 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 200 return view;
172 201 }
173 202  
... ...