From 33c528aaeca5f189ed587f194a19e2d0c756a822 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Fri, 15 Mar 2024 15:27:15 +0000 Subject: [PATCH] MDL-81256 lib: fix rounding of thumbnail image size --- lib/gdlib.php | 4 ++-- lib/tests/gdlib_test.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/gdlib.php b/lib/gdlib.php index bd69ece35fa..cd35b37c610 100644 --- a/lib/gdlib.php +++ b/lib/gdlib.php @@ -359,8 +359,8 @@ function resize_image_from_image($original, $imageinfo, $width, $height, $forcec } if ($ratio < 1) { - $targetwidth = floor($originalwidth * $ratio); - $targetheight = floor($originalheight * $ratio); + $targetwidth = round($originalwidth * $ratio); + $targetheight = round($originalheight * $ratio); } else { // Do not enlarge the original file if it is smaller than the requested thumbnail size. $targetwidth = $originalwidth; diff --git a/lib/tests/gdlib_test.php b/lib/tests/gdlib_test.php index d322d33d5cf..f0401f974e1 100644 --- a/lib/tests/gdlib_test.php +++ b/lib/tests/gdlib_test.php @@ -87,7 +87,7 @@ class gdlib_test extends \basic_testcase { $newpng = resize_image($pngpath, null, 24); $this->assertTrue(is_string($newpng)); $imageinfo = getimagesizefromstring($newpng); - $this->assertEquals(89, $imageinfo[0]); + $this->assertEquals(90, $imageinfo[0]); $this->assertEquals(24, $imageinfo[1]); $this->assertEquals('image/png', $imageinfo['mime']); @@ -96,7 +96,7 @@ class gdlib_test extends \basic_testcase { $this->assertTrue(is_string($newpng)); $imageinfo = getimagesizefromstring($newpng); $this->assertEquals(100, $imageinfo[0]); - $this->assertEquals(26, $imageinfo[1]); + $this->assertEquals(27, $imageinfo[1]); $this->assertEquals('image/png', $imageinfo['mime']); // Preferred width and height. @@ -121,7 +121,7 @@ class gdlib_test extends \basic_testcase { $newpng = resize_image_from_image($imageresource, $origimageinfo, null, 24); $this->assertTrue(is_string($newpng)); $imageinfo = getimagesizefromstring($newpng); - $this->assertEquals(89, $imageinfo[0]); + $this->assertEquals(90, $imageinfo[0]); $this->assertEquals(24, $imageinfo[1]); $this->assertEquals('image/png', $imageinfo['mime']); @@ -131,7 +131,7 @@ class gdlib_test extends \basic_testcase { $this->assertTrue(is_string($newpng)); $imageinfo = getimagesizefromstring($newpng); $this->assertEquals(100, $imageinfo[0]); - $this->assertEquals(26, $imageinfo[1]); + $this->assertEquals(27, $imageinfo[1]); $this->assertEquals('image/png', $imageinfo['mime']); // Preferred width and height.