diff options
author | Ferenc Kovacs <tyrael@php.net> | 2014-10-15 19:42:51 +0200 |
---|---|---|
committer | Ferenc Kovacs <tyrael@php.net> | 2014-10-15 19:42:51 +0200 |
commit | cfa1028d7e3942d6921d2c3ba5fba1be3ea78400 (patch) | |
tree | 707c5780b8d301f615e9ce55efe7c60ed5663741 | |
parent | 2109f5bfe362fdfe840a7014bd62682de3d95c5c (diff) | |
parent | 503f8193e804ba1eb0847b4c6148844e50a60427 (diff) | |
download | php-git-cfa1028d7e3942d6921d2c3ba5fba1be3ea78400.tar.gz |
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
NEWS
Fixed Bug #65171 imagescale() fails
Revert "Bug #41631: Observe socket read timeouts in SSL streams"
Conflicts:
ext/openssl/xp_ssl.c
-rw-r--r-- | ext/gd/gd.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ext/gd/gd.c b/ext/gd/gd.c index f67e80bf8e..7bf0b757a9 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -5118,11 +5118,23 @@ PHP_FUNCTION(imagescale) return; } method = tmp_m; - new_width = tmp_w; - new_height = tmp_h; ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd); + if (tmp_h < 0) { + /* preserve ratio */ + long src_x, src_y; + + src_x = gdImageSX(im); + src_y = gdImageSY(im); + if (src_x) { + tmp_h = tmp_w * src_y / src_x; + } + } + + new_width = tmp_w; + new_height = tmp_h; + if (gdImageSetInterpolationMethod(im, method)) { im_scaled = gdImageScale(im, new_width, new_height); } |