Support WebP format 42/236342/5
authorSeungho, Baek <sbsh.baek@samsung.com>
Tue, 16 Jun 2020 09:48:27 +0000 (18:48 +0900)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Wed, 24 Jun 2020 22:17:41 +0000 (22:17 +0000)
 - Added webp in cmakelists.txt to copy webp resource
 - Changed one of gif image to webp in animated-image-example

Change-Id: I59726a7a436badffc154a29d4ac29542b1d2629a
Signed-off-by: Seungho, Baek <sbsh.baek@samsung.com>
build/tizen/CMakeLists.txt
examples/animated-images/animated-images-example.cpp
resources/images/dog-anim.gif [deleted file]
resources/images/dog-anim.webp [new file with mode: 0644]

index 473ac76..9b45bb0 100644 (file)
@@ -101,18 +101,19 @@ ENDIF()
 SET(DEMO_EXAMPLE_BIN \\"${BINDIR}/\\")
 SET(DEMO_LANG \\"${LANG}\\")
 
-FILE(GLOB LOCAL_IMAGES_PNG RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
-FILE(GLOB LOCAL_IMAGES_JPG RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
-FILE(GLOB LOCAL_IMAGES_GIF RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
-FILE(GLOB LOCAL_IMAGES_BMP RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.bmp")
-FILE(GLOB LOCAL_IMAGES_ICO RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ico")
-FILE(GLOB LOCAL_IMAGES_WBMP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.wbmp")
-FILE(GLOB LOCAL_IMAGES_KTX RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ktx")
-FILE(GLOB LOCAL_IMAGES_ASTC RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.astc")
-FILE(GLOB LOCAL_IMAGES_SVG RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.svg")
+FILE(GLOB LOCAL_IMAGES_PNG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
+FILE(GLOB LOCAL_IMAGES_JPG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
+FILE(GLOB LOCAL_IMAGES_GIF RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
+FILE(GLOB LOCAL_IMAGES_WEBP RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.webp")
+FILE(GLOB LOCAL_IMAGES_BMP RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.bmp")
+FILE(GLOB LOCAL_IMAGES_ICO RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ico")
+FILE(GLOB LOCAL_IMAGES_WBMP RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.wbmp")
+FILE(GLOB LOCAL_IMAGES_KTX RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ktx")
+FILE(GLOB LOCAL_IMAGES_ASTC RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.astc")
+FILE(GLOB LOCAL_IMAGES_SVG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.svg")
 FILE(GLOB LOCAL_IMAGES_JSON RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.json")
 
-SET(LOCAL_IMAGES_LIST ${LOCAL_IMAGES_PNG};${LOCAL_IMAGES_JPG};${LOCAL_IMAGES_GIF};${LOCAL_IMAGES_BMP};${LOCAL_IMAGES_ICO};${LOCAL_IMAGES_WBMP};${LOCAL_IMAGES_KTX};${LOCAL_IMAGES_ASTC};${LOCAL_IMAGES_SVG};${LOCAL_IMAGES_JSON})
+SET(LOCAL_IMAGES_LIST ${LOCAL_IMAGES_PNG};${LOCAL_IMAGES_JPG};${LOCAL_IMAGES_GIF};${LOCAL_IMAGES_WEBP};${LOCAL_IMAGES_BMP};${LOCAL_IMAGES_ICO};${LOCAL_IMAGES_WBMP};${LOCAL_IMAGES_KTX};${LOCAL_IMAGES_ASTC};${LOCAL_IMAGES_SVG};${LOCAL_IMAGES_JSON})
 FOREACH(flag ${LOCAL_IMAGES_LIST})
         INSTALL(FILES ${LOCAL_IMAGES_DIR}/${flag} DESTINATION ${IMAGES_DIR})
 ENDFOREACH(flag)
index 153d202..4e947e6 100644 (file)
@@ -30,9 +30,9 @@ const char * const PLAY_ICON_SELECTED( DEMO_IMAGE_DIR "icon-play-selected.png" )
 
 const unsigned int ANIMATED_IMAGE_COUNT = 2;
 
-const char * ANIMATED_GIF_URLS[ ANIMATED_IMAGE_COUNT ] =
+const char * ANIMATED_IMAGE_URLS[ ANIMATED_IMAGE_COUNT ] =
 {
-  DEMO_IMAGE_DIR "dog-anim.gif",
+  DEMO_IMAGE_DIR "dog-anim.webp",
   DEMO_IMAGE_DIR "dali-logo-anim.gif"
 };
 
@@ -48,7 +48,7 @@ int ANIMATED_ARRAY_NUMBER_OF_FRAMES[ ANIMATED_IMAGE_COUNT ] =
   15
 };
 
-const char * GIF_RADIO_BUTTON_NAME( "Gif" );
+const char * ANIMATION_RADIO_BUTTON_NAME( "Animation Image" );
 const char * ARRAY_RADIO_BUTTON_NAME( "Array" );
 
 /// Structure to specify the layout information for the animated images views.
@@ -72,7 +72,7 @@ ImageLayoutInfo IMAGE_LAYOUT_INFO[ ANIMATED_IMAGE_COUNT ] =
  *
  * - It displays two animated images, an animated dog and an animated DALi logo.
  * - The images are loaded paused, a play button is overlayed on top of the images to play the animated image.
- * - Radio buttons at the bottom allow the user to change between Animated GIFs and a collection of Image Arrays.
+ * - Radio buttons at the bottom allow the user to change between Animated Images and a collection of Image Arrays.
  */
 class AnimatedImageController : public ConnectionTracker
 {
@@ -84,7 +84,7 @@ public:
    */
   AnimatedImageController( Application& application )
   : mApplication( application ),
-    mImageType( ImageType::GIF )
+    mImageType( ImageType::ANIMATED_IMAGE )
   {
     // Connect to the Application's Init signal
     mApplication.InitSignal().Connect( this, &AnimatedImageController::Create );
@@ -97,8 +97,8 @@ private:
    */
   enum class ImageType
   {
-    GIF,          ///< Displays Animated GIF Files.
-    IMAGE_ARRAY   ///< Displays an array of URLs that are used as an animated image.
+    ANIMATED_IMAGE,          ///< Displays Animated Image Files.
+    IMAGE_ARRAY              ///< Displays an array of URLs that are used as an animated image.
   };
 
   /**
@@ -115,7 +115,7 @@ private:
     // Create the animated image-views
     CreateAnimatedImageViews();
 
-    // Create radio buttons to change between GIF images and Image Arrays
+    // Create radio buttons to change between Animated images and Image Arrays
     CreateRadioButtonLayout();
 
     // Create a tap gesture detector to use to pause the animated images
@@ -128,7 +128,7 @@ private:
    */
   void CreateRadioButtonLayout()
   {
-    mGifButton = CreateRadioButton( GIF_RADIO_BUTTON_NAME, true );
+    mAnimatedImageButton = CreateRadioButton( ANIMATION_RADIO_BUTTON_NAME, true );
     mArrayButton = CreateRadioButton( ARRAY_RADIO_BUTTON_NAME, false );
 
     Toolkit::TableView radioButtonLayout = Toolkit::TableView::New( 1, 2 );
@@ -138,7 +138,7 @@ private:
     radioButtonLayout.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER );
     radioButtonLayout.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
     radioButtonLayout.SetFitHeight( 0 );
-    radioButtonLayout.AddChild( mGifButton, TableView::CellPosition( 0, 0 ) );
+    radioButtonLayout.AddChild( mAnimatedImageButton, TableView::CellPosition( 0, 0 ) );
     radioButtonLayout.AddChild( mArrayButton, TableView::CellPosition( 0, 1 ) );
     radioButtonLayout.SetCellAlignment( TableView::CellPosition( 0, 0 ),
                                         HorizontalAlignment::CENTER,
@@ -188,6 +188,8 @@ private:
       control.SetProperty( Actor::Property::PARENT_ORIGIN, IMAGE_LAYOUT_INFO[ index ].parentOrigin );
       control.SetProperty( Actor::Property::POSITION_Y,  IMAGE_LAYOUT_INFO[ index ].yPosition );
 
+      control.SetProperty( Actor::Property::SIZE, Vector2(300, 300) );
+
       // We do not want the animated image playing when it's added to the stage.
       PauseAnimatedImage( control );
 
@@ -277,7 +279,7 @@ private:
    */
   bool OnRadioButtonClicked( Toolkit::Button button )
   {
-    mImageType = ( button == mGifButton ) ? ImageType::GIF : ImageType::IMAGE_ARRAY;
+    mImageType = ( button == mAnimatedImageButton ) ? ImageType::ANIMATED_IMAGE : ImageType::IMAGE_ARRAY;
 
     CreateAnimatedImageViews();
     return true;
@@ -323,9 +325,9 @@ private:
    */
   void AddUrl( Property::Map& map, ImageType type, int index )
   {
-    if( type == ImageType::GIF )
+    if( type == ImageType::ANIMATED_IMAGE )
     {
-      map.Add( Toolkit::ImageVisual::Property::URL, Property::Value( ANIMATED_GIF_URLS[ index ] ) );
+      map.Add( Toolkit::ImageVisual::Property::URL, Property::Value( ANIMATED_IMAGE_URLS[ index ] ) );
     }
     else
     {
@@ -368,7 +370,7 @@ private:
   Toolkit::ImageView mActorDog;  ///< The current dog image view.
   Toolkit::ImageView mActorLogo; ///< The current logo image view.
 
-  Toolkit::RadioButton mGifButton;   ///< The Gif Radio Button.
+  Toolkit::RadioButton mAnimatedImageButton;   ///< The Animated Image Radio Button.
   Toolkit::RadioButton mArrayButton; ///< The Array Radio Button.
 
   TapGestureDetector mTapDetector; ///< The tap detector.
diff --git a/resources/images/dog-anim.gif b/resources/images/dog-anim.gif
deleted file mode 100644 (file)
index ddc3312..0000000
Binary files a/resources/images/dog-anim.gif and /dev/null differ
diff --git a/resources/images/dog-anim.webp b/resources/images/dog-anim.webp
new file mode 100644 (file)
index 0000000..9dd8e77
Binary files /dev/null and b/resources/images/dog-anim.webp differ