summary refs log tree commit diff
path: root/synapse/rest/media/v1
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-01-05 17:41:07 +0000
committerErik Johnston <erik@matrix.org>2016-01-05 17:41:07 +0000
commita178eb1bc8c8f553eba5d9b6a9209d5fe44e3f1a (patch)
tree6721815e8cb63064ea91a427c9ca1296454c6c4b /synapse/rest/media/v1
parentMerge pull request #461 from matrix-org/erikj/sync_leave (diff)
parentUse larger thumbnail rather than smaller. (diff)
downloadsynapse-a178eb1bc8c8f553eba5d9b6a9209d5fe44e3f1a.tar.xz
Merge pull request #464 from matrix-org/erikj/crop_correct
Use larger thumbnails rather than smaller when method=crop
Diffstat (limited to 'synapse/rest/media/v1')
-rw-r--r--synapse/rest/media/v1/thumbnail_resource.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/synapse/rest/media/v1/thumbnail_resource.py b/synapse/rest/media/v1/thumbnail_resource.py
index e506dad934..8b8fba3dc7 100644
--- a/synapse/rest/media/v1/thumbnail_resource.py
+++ b/synapse/rest/media/v1/thumbnail_resource.py
@@ -248,6 +248,7 @@ class ThumbnailResource(BaseMediaResource):
 
         if desired_method.lower() == "crop":
             info_list = []
+            info_list2 = []
             for info in thumbnail_infos:
                 t_w = info["thumbnail_width"]
                 t_h = info["thumbnail_height"]
@@ -258,12 +259,20 @@ class ThumbnailResource(BaseMediaResource):
                     size_quality = abs((d_w - t_w) * (d_h - t_h))
                     type_quality = desired_type != info["thumbnail_type"]
                     length_quality = info["thumbnail_length"]
-                    info_list.append((
-                        aspect_quality, min_quality, size_quality, type_quality,
-                        length_quality, info
-                    ))
+                    if t_w >= d_w or t_h >= d_h:
+                        info_list.append((
+                            aspect_quality, min_quality, size_quality, type_quality,
+                            length_quality, info
+                        ))
+                    else:
+                        info_list2.append((
+                            aspect_quality, min_quality, size_quality, type_quality,
+                            length_quality, info
+                        ))
             if info_list:
                 return min(info_list)[-1]
+            else:
+                return min(info_list2)[-1]
         else:
             info_list = []
             info_list2 = []