From d3cbbd5b8ab09f3023bbe5067a39935495e59847 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Fri, 20 Sep 2019 20:12:43 +0200 Subject: generators: Force even base image dimensions for fractional HiDPI sizes In case a dimension of the base image is not even and fractional HiDPI size is to be generated, the resulting image size computes to a non-integer values. Rounding in browsers may vary so let's stick with safe values and force even base image dimensions. This may result in slight crop applied before resize, generally imperceptible. Tested on Chromium 69 and Firefox 52. --- src/setup.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/setup.c') diff --git a/src/setup.c b/src/setup.c index 266c36e..1ff7ae2 100644 --- a/src/setup.c +++ b/src/setup.c @@ -328,13 +328,13 @@ parse_design_setup_xml (const gchar *filename) hidpi_image_size->no_resize_threshold = 0; hidpi_image_size->availability_threshold = 0; hidpi_image_size->name = g_strdup_printf (HIDPI_NAME_FORMAT, image_size->name, hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->landscape_width = lround ((gdouble) image_size->landscape_width * hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->landscape_height = lround ((gdouble) image_size->landscape_height * hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->portrait_width = lround ((gdouble) image_size->portrait_width * hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->portrait_height = lround ((gdouble) image_size->portrait_height * hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->square_size = lround ((gdouble) image_size->square_size * hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->crop_width = lround ((gdouble) image_size->crop_width * hidpi_image_size->hidpi_scale_factor); - hidpi_image_size->crop_height = lround ((gdouble) image_size->crop_height * hidpi_image_size->hidpi_scale_factor); + hidpi_image_size->landscape_width = (gdouble) image_size->landscape_width * hidpi_image_size->hidpi_scale_factor; + hidpi_image_size->landscape_height = (gdouble) image_size->landscape_height * hidpi_image_size->hidpi_scale_factor; + hidpi_image_size->portrait_width = (gdouble) image_size->portrait_width * hidpi_image_size->hidpi_scale_factor; + hidpi_image_size->portrait_height = (gdouble) image_size->portrait_height * hidpi_image_size->hidpi_scale_factor; + hidpi_image_size->square_size = (gdouble) image_size->square_size * hidpi_image_size->hidpi_scale_factor; + hidpi_image_size->crop_width = (gdouble) image_size->crop_width * hidpi_image_size->hidpi_scale_factor; + hidpi_image_size->crop_height = (gdouble) image_size->crop_height * hidpi_image_size->hidpi_scale_factor; if (! hidpi_image_size->is_thumbnail && design->hidpi_quality > 0) hidpi_image_size->quality = design->hidpi_quality; if (hidpi_image_size->is_thumbnail && design->hidpi_thumbnail_quality > 0) -- cgit v1.2.3