defmodule PhilomenaMedia.Analyzers.Svg do @moduledoc false alias PhilomenaMedia.Analyzers.Analyzer alias PhilomenaMedia.Analyzers.Result @behaviour Analyzer @spec analyze(Path.t()) :: Result.t() def analyze(file) do stats = stats(file) %Result{ extension: "svg", mime_type: "image/svg+xml", animated?: false, duration: 0.0, dimensions: stats.dimensions } end defp stats(file) do case System.cmd("svgstat", [file]) do {output, 0} -> [_size, _frames, width, height, _num, _den] = output |> String.trim() |> String.split(" ") |> Enum.map(&String.to_integer/1) %{dimensions: {width, height}} _ -> %{dimensions: {0, 0}} end end end