[gnome-photos/wip/rishi/thumbnailer: 3/5] utils: Use a fuzz factor to decide whether a thumbnail is too small
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos/wip/rishi/thumbnailer: 3/5] utils: Use a fuzz factor to decide whether a thumbnail is too small
- Date: Fri, 24 Feb 2017 08:23:13 +0000 (UTC)
commit a3e461b26dd508fcb8233eb84d1c51bc5391011e
Author: Debarshi Ray <debarshir gnome org>
Date: Tue Feb 21 12:40:45 2017 +0100
utils: Use a fuzz factor to decide whether a thumbnail is too small
A grid of letterboxed thumbnails only looks good if all, or almost all,
the thumbnails are big enough to touch at least one pair of the grid's
edges. Sadly, sometimes, a thumbnail can be slightly smaller than the
requested size. eg., server-generated thumbnails for remote items.
Therefore, let's scale up those thumbnails that are within 75% of the
requested size. It won't cause any discernible loss of quality and will
make the grid look nicer.
https://bugzilla.gnome.org/show_bug.cgi?id=777869
src/photos-utils.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/src/photos-utils.c b/src/photos-utils.c
index 5f6e303..d514288 100644
--- a/src/photos-utils.c
+++ b/src/photos-utils.c
@@ -542,7 +542,15 @@ photos_utils_downscale_pixbuf_for_scale (GdkPixbuf *pixbuf, gint size, gint scal
scaled_size = size * scale;
/* On Hi-Dpi displays, a pixbuf should never appear smaller than on
- * Lo-Dpi. Therefore, if a pixbuf lies between (size, size * scale)
+ * Lo-Dpi.
+ *
+ * Sometimes, a pixbuf can be slightly smaller than size. eg.,
+ * server-generated thumbnails for remote tems. Scaling them up
+ * won't cause any discernible loss of quality and will make our
+ * letterboxed grid look nicer. 75% of 'scale' has been chosen as
+ * the arbitrary definition of 'slightly smaller'.
+ *
+ * Therefore, if a pixbuf lies between (3 * size / 4, size * scale)
* we scale it up to size * scale, so that it doesn't look smaller.
* Similarly, if a pixbuf is smaller than size, then we increase its
* dimensions by the scale factor.
@@ -552,7 +560,7 @@ photos_utils_downscale_pixbuf_for_scale (GdkPixbuf *pixbuf, gint size, gint scal
{
ret_val = g_object_ref (pixbuf);
}
- else if (pixbuf_size > size)
+ else if (pixbuf_size > 3 * size / 4)
{
if (height == width)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]