TizenRefApp-8612 [Gallery] Respect EXIF rotation flag 27/132127/1
authorIgor Nazarov <i.nazarov@samsung.com>
Thu, 1 Jun 2017 07:15:46 +0000 (10:15 +0300)
committerIgor Nazarov <i.nazarov@samsung.com>
Thu, 1 Jun 2017 07:15:46 +0000 (10:15 +0300)
Change-Id: Iec65a61da3cb6a51ad223126bba03231d6ee7288

src/model/MediaItem.cpp
src/view/ImageGrid.cpp
src/view/ImageViewer.cpp

index 61d3a272f2f8b5da215d570d3af1e9d2751a38ba..db7b222afdbada206c9cfbb11e570c3b1e686920 100644 (file)
@@ -256,6 +256,22 @@ namespace gallery {
                FAIL_RETURN(util::getNz(image_meta_get_height, m_resolutionY,
                                imageMeta), "image_meta_get_height() failed!");
 
+               media_content_orientation_e orientation =
+                               MEDIA_CONTENT_ORIENTATION_NOT_AVAILABLE;
+               FAIL_RETURN(util::get(image_meta_get_orientation, orientation,
+                               imageMeta), "image_meta_get_orientation() failed!");
+
+               switch (orientation) {
+               case MEDIA_CONTENT_ORIENTATION_TRANSPOSE:
+               case MEDIA_CONTENT_ORIENTATION_ROT_90:
+               case MEDIA_CONTENT_ORIENTATION_TRANSVERSE:
+               case MEDIA_CONTENT_ORIENTATION_ROT_270:
+                       std::swap(m_resolutionX, m_resolutionY);
+                       break;
+               default:
+                       break;
+               }
+
                return RES_OK;
        }
 
index ae974d68489cf7eb3863c6f74ae7cf2d17085d73..29cabf96492d4be501933d9bf8e7cfd16bf838e6 100644 (file)
@@ -249,6 +249,7 @@ namespace gallery {
                                m_btn.setStyle(imageGrid.m_info.btnStyle);
                                show(m_btn);
 
+                               evas_object_image_load_orientation_set(m_image, EINA_TRUE);
                                m_btn.setContent(m_image);
                                show(m_image);
 
@@ -479,6 +480,8 @@ namespace gallery {
                                if (!m_bgImage) {
                                        m_bgImage = makeShared<Widget>(
                                                        evas_object_image_filled_add(m_btn.getEvas()));
+                                       evas_object_image_load_orientation_set(*m_bgImage,
+                                                       EINA_TRUE);
                                        m_btn.setContent(*m_bgImage, impl::BTN_PART_BG);
                                        show(*m_bgImage);
                                }
index 0437bfcdf41d99edf08aeb2318c9c31772def09b..6d5e0d6c8206e6f3762e4ec2eca147a39d79cb33 100644 (file)
@@ -139,6 +139,7 @@ namespace gallery {
                m_layout.setContent(m_grid);
                show(m_grid);
 
+               evas_object_image_load_orientation_set(m_lowResImage, EINA_TRUE);
                evas_object_grid_pack(m_grid, m_lowResImage, 0, 0, 1, 1);
                if (loadSize > 0) {
                        evas_object_image_load_size_set(m_lowResImage, loadSize, loadSize);
@@ -146,6 +147,7 @@ namespace gallery {
                show(m_lowResImage);
                makeTransparent(m_lowResImage);
 
+               evas_object_image_load_orientation_set(m_highResImage, EINA_TRUE);
                evas_object_grid_pack(m_grid, m_highResImage, 0, 0, 1, 1);
                if (forceLoad) {
                        if (loadSize > 0) {