]> git.mxchange.org Git - friendica.git/commitdiff
The BlurHash function must not change the original image
authorMichael <heluecht@pirati.ca>
Mon, 5 Dec 2022 20:38:21 +0000 (20:38 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 5 Dec 2022 20:38:21 +0000 (20:38 +0000)
src/Object/Image.php

index 6eb86200310aa6bb28d8b908e90fefe0227499d1..c798f250ed8748de607c80dad71f708840eff48b 100644 (file)
@@ -733,25 +733,27 @@ class Image
         */
        public function getBlurHash(): string
        {
-               $width = $this->getWidth();
-               $height = $this->getHeight();
+               $image = New Image($this->asString());
+
+               $width = $image->getWidth();
+               $height = $image->getHeight();
 
                if (max($width, $height) > 90) {
-                       $this->scaleDown(90);
-                       $width = $this->getWidth();
-                       $height = $this->getHeight();
+                       $image->scaleDown(90);
+                       $width = $image->getWidth();
+                       $height = $image->getHeight();
                }
 
                $pixels = [];
                for ($y = 0; $y < $height; ++$y) {
                        $row = [];
                        for ($x = 0; $x < $width; ++$x) {
-                               if ($this->isImagick()) {
-                                       $colors = $this->image->getImagePixelColor($x, $y)->getColor();
+                               if ($image->isImagick()) {
+                                       $colors = $image->image->getImagePixelColor($x, $y)->getColor();
                                        $row[] = [$colors['r'], $colors['g'], $colors['b']];
                                } else {
-                                       $index = imagecolorat($this->image, $x, $y);
-                                       $colors = @imagecolorsforindex($this->image, $index);
+                                       $index = imagecolorat($image->image, $x, $y);
+                                       $colors = @imagecolorsforindex($image->image, $index);
                                        $row[] = [$colors['red'], $colors['green'], $colors['blue']];
                                }
                        }