X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FObject%2FImage.php;h=4645a8678a59fd1e330614315a364dfb01005a07;hb=d936cc5a5c2755a0056ff12a297bf0fa25dc6bf1;hp=dec4f4eea427cadc37e6fb08b0b9aa54354f3ac8;hpb=cdbc94a9e1b27f8843e3c423b46701338bebbf7a;p=friendica.git diff --git a/src/Object/Image.php b/src/Object/Image.php index dec4f4eea4..4645a8678a 100644 --- a/src/Object/Image.php +++ b/src/Object/Image.php @@ -1,13 +1,27 @@ . + * */ + namespace Friendica\Object; use Exception; -use Friendica\Core\Config; -use Friendica\Core\System; use Friendica\DI; use Friendica\Util\Images; use Imagick; @@ -108,14 +122,18 @@ class Image $this->image->setFormat($format); // Always coalesce, if it is not a multi-frame image it won't hurt anyway - $this->image = $this->image->coalesceImages(); + try { + $this->image = $this->image->coalesceImages(); + } catch (Exception $e) { + return false; + } /* * setup the compression here, so we'll do it only once */ switch ($this->getType()) { case "image/png": - $quality = Config::get('system', 'png_quality'); + $quality = DI::config()->get('system', 'png_quality'); if ((! $quality) || ($quality > 9)) { $quality = PNG_QUALITY; } @@ -131,7 +149,7 @@ class Image $this->image->setCompressionQuality($quality); break; case "image/jpeg": - $quality = Config::get('system', 'jpeg_quality'); + $quality = DI::config()->get('system', 'jpeg_quality'); if ((! $quality) || ($quality > 100)) { $quality = JPEG_QUALITY; } @@ -441,7 +459,6 @@ class Image break; } - // Logger::log('exif: ' . print_r($exif,true)); return $exif; } @@ -524,7 +541,12 @@ class Image do { // FIXME - implement horizontal bias for scaling as in following GD functions // to allow very tall images to be constrained only horizontally. - $this->image->scaleImage($dest_width, $dest_height); + try { + $this->image->scaleImage($dest_width, $dest_height); + } catch (Exception $e) { + // Imagick couldn't use the data + return false; + } } while ($this->image->nextImage()); // These may not be necessary anymore @@ -553,6 +575,21 @@ class Image return true; } + /** + * Convert a GIF to a PNG to make it static + */ + public function toStatic() + { + if ($this->type != 'image/gif') { + return; + } + + if ($this->isImagick()) { + $this->type == 'image/png'; + $this->image->setFormat('png'); + } + } + /** * @param integer $max maximum * @param integer $x x coordinate @@ -611,7 +648,7 @@ class Image $stamp1 = microtime(true); file_put_contents($path, $string); - DI::profiler()->saveTimestamp($stamp1, "file", System::callstack()); + DI::profiler()->saveTimestamp($stamp1, "file"); } /** @@ -652,14 +689,14 @@ class Image switch ($this->getType()) { case "image/png": - $quality = Config::get('system', 'png_quality'); + $quality = DI::config()->get('system', 'png_quality'); if ((!$quality) || ($quality > 9)) { $quality = PNG_QUALITY; } imagepng($this->image, null, $quality); break; case "image/jpeg": - $quality = Config::get('system', 'jpeg_quality'); + $quality = DI::config()->get('system', 'jpeg_quality'); if ((!$quality) || ($quality > 100)) { $quality = JPEG_QUALITY; } @@ -693,22 +730,6 @@ class Image return Images::getFormatsMap(); } - /** - * Guess image mimetype from filename or from Content-Type header - * - * @param string $filename Image filename - * @param boolean $fromcurl Check Content-Type header from curl request - * @param string $header passed headers to take into account - * - * @return string|null - * @throws Exception - * @deprecated in version 2019.12 please use Util\Images::guessType() instead. - */ - public static function guessType($filename, $fromcurl = false, $header = '') - { - return Images::guessType($filename, $fromcurl, $header); - } - /** * @param string $url url * @return array