From 4bec2e03e07b29a0c927e854f88edd59f1ad8fd1 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 28 Sep 2023 09:02:29 +0200 Subject: [PATCH] wip #6300 --- app/Models/QuizTheme.php | 46 +++++++++++++++++++++++++--------------- composer.lock | 22 +++++++++---------- 2 files changed, 40 insertions(+), 28 deletions(-) diff --git a/app/Models/QuizTheme.php b/app/Models/QuizTheme.php index 312248bdb..ba3cd72ed 100644 --- a/app/Models/QuizTheme.php +++ b/app/Models/QuizTheme.php @@ -216,24 +216,18 @@ class QuizTheme extends ToolboxModel $theme->font = 'SourceSans'; - $tmp = Files::tempnam() . '.jpg'; - $blur = Files::tempnam() . '.jpg'; - - $resizer = new Resizer(); - $resizer->loadImage($banner); - $resizer->resize(1200, 680, true, true); - $resizer->output('jpg', $tmp); - Imagemagick::blur($tmp, $blur); - $theme->addMediaToField('backgroundImage', $blur); - + $avg = Imagemagick::getAverageColor($banner); + $distance = $avg->distance(new \Cubist\Util\Graphics\Color('#fff')); + $darken = $distance <= 20000000; + + if ($darken) { + $tmp = Files::tempnam() . '.jpg'; + Imagemagick::brightnessContrast($banner, $tmp, -20); + $banner = $tmp; + } - $blur = Files::tempnam() . '.jpg'; - $resizer = new Resizer(); - $resizer->loadImage($banner); - $resizer->resize(390, 844, true, true); - $resizer->output('jpg', $tmp); - Imagemagick::blur($tmp, $blur); - $theme->addMediaToField('backgroundImageMobile', $blur); + $theme->addMediaToField('backgroundImage', self::resizeAndBlur($banner, 1200, 680)); + $theme->addMediaToField('backgroundImageMobile', self::resizeAndBlur($banner, 390, 844)); $theme->backgroundCustomMobile = '1'; $theme->backgroundSizeMobile = ThemeBackgroundSize::RATIO; @@ -243,4 +237,22 @@ class QuizTheme extends ToolboxModel $theme->save(); return $theme->id; } + + protected static function resizeAndBlur($image, $width, $height) + { + $tmp = Files::tempnam() . '.jpg'; + $blur = Files::tempnam() . '.jpg'; + + $resizer = new Resizer(); + $resizer->loadImage($image); + + $resizer->resize($width, $height, true, true); + $resizer->output('jpg', $tmp); + + + Imagemagick::blur($tmp, $blur); + + unlink($tmp); + return $blur; + } } diff --git a/composer.lock b/composer.lock index 927637ab4..e94d0da45 100644 --- a/composer.lock +++ b/composer.lock @@ -2122,13 +2122,13 @@ "source": { "type": "git", "url": "git://git.cubedesigners.com/cubist_util.git", - "reference": "bb497cd182cb0eea33f2d83d4bdae8a6b62a1e0b" + "reference": "48f8939f743124ba01d3a2ca3efaf5ece693568a" }, "dist": { "type": "tar", - "url": "https://composer.cubedesigners.com/dist/cubist/util/cubist-util-dev-master-e86967.tar", - "reference": "bb497cd182cb0eea33f2d83d4bdae8a6b62a1e0b", - "shasum": "65bfe13dc8d44df28e15ac99047b7df58a87ccf4" + "url": "https://composer.cubedesigners.com/dist/cubist/util/cubist-util-dev-master-09972a.tar", + "reference": "48f8939f743124ba01d3a2ca3efaf5ece693568a", + "shasum": "95d60cc6bf9cb59d9f6ae9471895a3a734a26e3f" }, "require": { "cubist/net": "dev-master", @@ -2162,7 +2162,7 @@ } ], "description": "Utilities class", - "time": "2023-09-26T16:42:08+00:00" + "time": "2023-09-28T06:54:51+00:00" }, { "name": "cviebrock/eloquent-sluggable", @@ -2716,16 +2716,16 @@ }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { @@ -2757,9 +2757,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/event-manager", -- 2.39.5