. * * @link https://www.librenms.org * * @copyright 2022 Tony Murray * @author Tony Murray */ namespace LibreNMS\Data\Graphing; class GraphImage { /** * @var string */ private $type; /** * @var string */ private $title; /** * @var string */ private $data; public function __construct(string $type, string $title, string $data) { $this->type = $type; $this->title = $title; $this->data = $data; } public function title(): string { return $this->title; } public function data(): string { return $this->data; } public function base64(): string { return base64_encode($this->data); } public function inline(): string { return 'data:' . $this->imageType() . ';base64,' . $this->base64(); } public function fileExtension(): string { switch ($this->imageType()) { case 'image/svg+xml': return 'svg'; case 'image/png': // fallthrough default: return 'png'; } } public function imageType(): string { return $this->type; } public function __toString() { return $this->data(); } }