exif_reader_factory = $exif_reader_factory; } public function getMetadata(string $file_path): ImageMetadataResult { $ret = \getimagesize($file_path, $info); if ($ret === false) { throw new \RuntimeException("Could not read image sizes of '$file_path'"); } if ($ret[2] == \IMAGETYPE_UNKNOWN) { throw new \RuntimeException("Error '$file_path' is not an image"); } $width = $ret[0]; $height = $ret[1]; $mime = $ret['mime']; $orientation = null; $exif_reader = $this->exif_reader_factory->getReader($mime); if ($exif_reader !== null) { $orientation = $exif_reader->getOrientation($file_path); if ($orientation !== null && Exif::exifOrientationOnSide($orientation)) { $tmp = $width; $width = $height; $height = $tmp; } } return new ImageMetadataResult($width, $height, $mime, $orientation); } }