From f55c17ee4f37859731eeb724a00368c923d905dd Mon Sep 17 00:00:00 2001 From: onli Date: Thu, 10 Oct 2019 23:41:52 +0200 Subject: [PATCH] Fix: rotate image did not rotate all thumbnails. Backported from master branch. Signed-off-by: Thomas Hochstein --- include/functions_images.inc.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/include/functions_images.inc.php b/include/functions_images.inc.php index c3269784..dc9c9050 100644 --- a/include/functions_images.inc.php +++ b/include/functions_images.inc.php @@ -807,16 +807,19 @@ function serendipity_rotateImg($id, $degrees) { } $infile = $outfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); - $infileThumb = $outfileThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension']); + $thumbnails = serendipity_getThumbnails($id); if ($serendipity['magick'] !== true) { serendipity_rotate_image_gd($infile, $outfile, $degrees); - serendipity_rotate_image_gd($infileThumb, $outfileThumb, $degrees); + foreach($thumbnails as $thumbnail) { + $infileThumb = $outfileThumb = $thumbnail; + serendipity_rotate_image_gd($infileThumb, $outfileThumb, $degrees); + } } else { /* Why can't we just all agree on the rotation direction? */ $degrees = (360 - $degrees); - /* Resize main image */ + /* rotate main image */ $cmd = escapeshellcmd($serendipity['convert']) . ' -rotate ' . serendipity_escapeshellarg($degrees) . ' ' . serendipity_escapeshellarg($infile) . ' ' . serendipity_escapeshellarg($outfile); exec($cmd, $output, $result); if ( $result != 0 ) { @@ -824,13 +827,16 @@ function serendipity_rotateImg($id, $degrees) { } unset($output, $result); - /* Resize thumbnail */ - $cmd = escapeshellcmd($serendipity['convert']) . ' -rotate ' . serendipity_escapeshellarg($degrees) . ' ' . serendipity_escapeshellarg($infileThumb) . ' ' . serendipity_escapeshellarg($outfileThumb); - exec($cmd, $output, $result); - if ( $result != 0 ) { - echo ' ' . sprintf(IMAGICK_EXEC_ERROR, $cmd, $output[0], $result) ."\n"; + /* rotate thumbnail */ + foreach($thumbnails as $thumbnail) { + $infileThumb = $outfileThumb = $thumbnail; + $cmd = escapeshellcmd($serendipity['convert']) . ' -rotate ' . serendipity_escapeshellarg($degrees) . ' ' . serendipity_escapeshellarg($infileThumb) . ' ' . serendipity_escapeshellarg($outfileThumb); + exec($cmd, $output, $result); + if ( $result != 0 ) { + echo ' ' . sprintf(IMAGICK_EXEC_ERROR, $cmd, $output[0], $result) ."\n"; + } + unset($output, $result); } - unset($output, $result); }