summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <pajoye@php.net>2013-09-09 11:56:05 +0200
committerunknown <pajoye@php.net>2013-09-09 11:56:05 +0200
commitb54b6e30a4e46d9dd1f1bf0cbc0d4539c0f7d51d (patch)
tree2b0515aa16795b823b1b5b7a29b5d3e1a58af109
parent8d860c121810d6a10380241a0a51387966a503ca (diff)
downloadphp-git-b54b6e30a4e46d9dd1f1bf0cbc0d4539c0f7d51d.tar.gz
ensure that the defined interpolation method is used by the generic scaling functions
-rw-r--r--NEWS3
-rw-r--r--ext/gd/libgd/gd_interpolation.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 817f9f74db..865557198e 100644
--- a/NEWS
+++ b/NEWS
@@ -30,6 +30,9 @@ PHP NEWS
. Fixed bug #65564 (stack-buffer-overflow in DateTimeZone stuff caught
by AddressSanitizer). (Remi).
+- GD
+ . Ensure that the defined interpolation method is used with the generic scaling methods (Pierre)
+
- OPCache:
. Fixed bug #65561 (Zend Opcache on Solaris 11 x86 needs ZEND_MM_ALIGNMENT=4).
(Terry Ellison)
diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c
index e3247a78c1..3643535f2e 100644
--- a/ext/gd/libgd/gd_interpolation.c
+++ b/ext/gd/libgd/gd_interpolation.c
@@ -1065,6 +1065,7 @@ gdImagePtr gdImageScaleTwoPass(const gdImagePtr src, const unsigned int src_widt
if (tmp_im == NULL) {
return NULL;
}
+ gdImageSetInterpolationMethod(tmp_im, src->interpolation_id);
_gdScaleHoriz(src, src_width, src_height, tmp_im, new_width, src_height);
dst = gdImageCreateTrueColor(new_width, new_height);
@@ -1072,6 +1073,7 @@ gdImagePtr gdImageScaleTwoPass(const gdImagePtr src, const unsigned int src_widt
gdFree(tmp_im);
return NULL;
}
+ gdImageSetInterpolationMethod(dst, src->interpolation_id);
_gdScaleVert(tmp_im, new_width, src_height, dst, new_width, new_height);
gdFree(tmp_im);
@@ -1086,8 +1088,9 @@ gdImagePtr Scale(const gdImagePtr src, const unsigned int src_width, const unsig
if (tmp_im == NULL) {
return NULL;
}
- _gdScaleHoriz(src, src_width, src_height, tmp_im, new_width, src_height);
+ gdImageSetInterpolationMethod(tmp_im, src->interpolation_id);
+ _gdScaleHoriz(src, src_width, src_height, tmp_im, new_width, src_height);
_gdScaleVert(tmp_im, new_width, src_height, dst, new_width, new_height);
gdFree(tmp_im);