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"); } $exif_reader = $this->exif_reader_factory->getReader($ret['mime']); $orientation = $exif_reader === null ? null : $exif_reader->getOrientation($file_path); return new ImageMetadataResult($ret[0], $ret[1], $ret['mime'], $orientation); } }