From 0193e40d8c1c06303bc8f0be95634fe8df7f1481 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 17 Aug 2016 16:45:16 +0900 Subject: [PATCH] evas: Fix region test in jpeg load with region + zoom The previous commit exposed an issue with the region test does not take into account the scale down factor. Not a @fix in itself, as it depends on the previous patch. --- src/lib/emile/emile_image.c | 7 +++++++ src/modules/evas/image_loaders/png/evas_image_load_png.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c index 5c12035..7c1db48 100644 --- a/src/lib/emile/emile_image.c +++ b/src/lib/emile/emile_image.c @@ -1562,6 +1562,13 @@ _emile_jpeg_head(Emile_Image *image, prop->w, prop->h, degree, prop->flipped); } + if (prop->scale > 1) + { + load_region_x /= prop->scale; + load_region_y /= prop->scale; + load_region_w /= prop->scale; + load_region_h /= prop->scale; + } RECTS_CLIP_TO_RECT(load_region_x, load_region_y, load_region_w, load_region_h, 0, 0, prop->w, prop->h); diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c b/src/modules/evas/image_loaders/png/evas_image_load_png.c index 15660af..3444c0f 100644 --- a/src/modules/evas/image_loaders/png/evas_image_load_png.c +++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c @@ -159,8 +159,8 @@ evas_image_load_file_head_png(void *loader_data, if (opts->region.w > 0 && opts->region.h > 0) { - if ((w32 < opts->region.x + opts->region.w) || - (h32 < opts->region.y + opts->region.h)) + if (((int) w32 < opts->region.x + opts->region.w) || + ((int) h32 < opts->region.y + opts->region.h)) { *error = EVAS_LOAD_ERROR_GENERIC; goto close_file; -- 2.7.4