diff --git a/inc/Service/Media/GdImageFormatReader.php b/inc/Service/Media/GdImageFormatReader.php new file mode 100644 index 00000000..de20435c --- /dev/null +++ b/inc/Service/Media/GdImageFormatReader.php @@ -0,0 +1,18 @@ +prefix = $prefix; + } + + public function getSizes(string $file_path): array { + $arg = escapeshellarg("$file_path[0]"); + $ret_exec = shell_exec_error("{$this->prefix}identify -format \"%w %h\" $arg"); + + if (!\is_string($ret_exec)) { + throw new \RuntimeException("Error while executing identify"); + } + $ret_match = \preg_match('/^(\d+) (\d+)$/', $ret_exec, $m); + if (!$ret_match) { + throw new \RuntimeException("Could not parse identify output"); + } + return [ $m[1], $m[2] ]; + } +}