<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
public function isValid(): bool
{
if ($this->isImagick()) {
- return ($this->image !== false);
+ return !empty($this->image);
}
return $this->valid;
}
$width = $this->getWidth();
$height = $this->getHeight();
- if ((! $width)|| (! $height)) {
- return false;
- }
-
- if ($width > $max && $height > $max) {
- // very tall image (greater than 16:9)
- // constrain the width - let the height float.
-
- if ((($height * 9) / 16) > $width) {
- $dest_width = $max;
- $dest_height = intval(($height * $max) / $width);
- } elseif ($width > $height) {
- // else constrain both dimensions
- $dest_width = $max;
- $dest_height = intval(($height * $max) / $width);
- } else {
- $dest_width = intval(($width * $max) / $height);
- $dest_height = $max;
- }
+ $scale = Images::getScalingDimensions($width, $height, $max);
+ if ($scale) {
+ return $this->scale($scale['width'], $scale['height']);
} else {
- if ($width > $max) {
- $dest_width = $max;
- $dest_height = intval(($height * $max) / $width);
- } else {
- if ($height > $max) {
- // very tall image (greater than 16:9)
- // but width is OK - don't do anything
-
- if ((($height * 9) / 16) > $width) {
- $dest_width = $width;
- $dest_height = $height;
- } else {
- $dest_width = intval(($width * $max) / $height);
- $dest_height = $max;
- }
- } else {
- $dest_width = $width;
- $dest_height = $height;
- }
- }
+ return false;
}
- return $this->scale($dest_width, $dest_height);
}
/**
$orientation = $this->image->getImageOrientation();
switch ($orientation) {
case Imagick::ORIENTATION_BOTTOMRIGHT:
- $this->image->rotateimage("#000", 180);
+ $this->rotate(180);
break;
case Imagick::ORIENTATION_RIGHTTOP:
- $this->image->rotateimage("#000", 90);
+ $this->rotate(-90);
break;
case Imagick::ORIENTATION_LEFTBOTTOM:
- $this->image->rotateimage("#000", -90);
+ $this->rotate(90);
break;
}
return '';
}
- $width = $image->getWidth();
+ $width = $image->getWidth();
$height = $image->getHeight();
if (max($width, $height) > 90) {
$image->scaleDown(90);
- $width = $image->getWidth();
+ $width = $image->getWidth();
$height = $image->getHeight();
}
+ if (empty($width) || empty($height)) {
+ return '';
+ }
+
$pixels = [];
for ($y = 0; $y < $height; ++$y) {
$row = [];
if ($image->isImagick()) {
try {
$colors = $image->image->getImagePixelColor($x, $y)->getColor();
- } catch (\Throwable $th) {
+ } catch (\Exception $exception) {
return '';
}
$row[] = [$colors['r'], $colors['g'], $colors['b']];