/** * {@inheritdoc} */ public static function deserialise($json) { if (empty($json)) { throw new InvalidImageMetadataException(); } $object_data = json_decode($json, true); // MIME-type is an minimum requirement for metadata if (!isset($object_data['mimetype'])) { throw new InvalidImageMetadataException(); } $instance = new static(); $instance->setMimeType($object_data['mimetype'])->setFormat(isset($object_data['format']) ? ImageFormat::memberByValue($object_data['format']) : null)->setResolution(isset($object_data['resolution']) ? ImageDimensions::deserialise($object_data['resolution']) : null)->setOrientation(isset($object_data['orientation']) ? ImageOrientation::memberByValue($object_data['orientation']) : null)->setDimensions(isset($object_data['dimensions']) ? ImageDimensions::deserialise($object_data['dimensions']) : null); return $instance; }