*/
public function getBlurHash(): string
{
- $width = $this->getWidth();
- $height = $this->getHeight();
+ $image = New Image($this->asString());
+ if (empty($image)) {
+ return '';
+ }
+
+ $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()) {
+ try {
+ $colors = $image->image->getImagePixelColor($x, $y)->getColor();
+ } catch (\Throwable $th) {
+ return '';
+ }
$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']];
}
}
}
}
- if (!$this->isImagick()) {
+ if ($this->isImagick()) {
+ $this->image->drawImage($draw);
+ } else {
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
- } else {
- $this->image->drawImage($draw);
}
$this->valid = true;