private function getImageData(Image $image) { $data = ["src" => $image->getSrc()]; if (($platform = $image->getPlatform()) !== null) { $data["platform"] = $platform; } if (count($purpose = $image->getPurpose()) > 0) { $data["purpose"] = implode(" ", $purpose); } if (($type = $image->getType()) !== null) { $data["type"] = $type; } if (count($sizes = $image->getSizes()) > 0) { $data["sizes"] = implode(" ", array_map(function (array $size) { return "{$size[0]}x{$size[1]}"; }, $sizes)); } return $data; }
private static function imageFromData(array $data) { $image = new Image(); if (isset($data["src"])) { $image->setSrc($data["src"]); } if (isset($data["type"])) { $image->setType($data["type"]); } if (isset($data["sizes"])) { $sizes = []; if (preg_match_all("/(\\d+)x(\\d+)/", $data["sizes"], $sizes)) { for ($i = 0; $i < count($sizes[0]); $i++) { $image->addSize($sizes[1][$i], $sizes[2][$i]); } } } return $image; }