diff --git a/src/ImageSizer.php b/src/ImageSizer.php index 096d0b7..85eb14a 100644 --- a/src/ImageSizer.php +++ b/src/ImageSizer.php @@ -2,6 +2,8 @@ namespace Drupal\image_field_repair; +use Drupal\Core\StreamWrapper\LocalStream; + /** * Helper for get image size. */ @@ -15,6 +17,11 @@ class ImageSizer { private static $fastImage; /** + * @var \Drupal\Core\StreamWrapper\StreamWrapperManagerInterface + */ + private static $stream_wrapper_manager; + + /** * Returns size of image. * * @param string $uri @@ -27,21 +34,24 @@ class ImageSizer { public static function getSize($uri) { if (!static::$fastImage) { static::$fastImage = new FastImage(); + static::$stream_wrapper_manager = \Drupal::service('stream_wrapper_manager'); } if ($uri[0] === '/' && $uri[1] === '/') { $uri = 'http:' . $uri; } - if ($stream_wrapper_manager = \Drupal::service('stream_wrapper_manager')->getViaUri($uri)) { - return @getimagesize($stream_wrapper_manager->realpath()); + $size = FALSE; + if (static::$stream_wrapper_manager->getViaUri($uri) instanceof LocalStream) { + $size = @getimagesize($uri); } - @static::$fastImage->load($uri); - - $size = @static::$fastImage->getSize(); if (!$size) { - $size = @getimagesize($uri); + @static::$fastImage->load($uri); + $size = @static::$fastImage->getSize(); + if (!$size) { + $size = @getimagesize($uri); + } } return $size; }