philomena/lib/philomena/analyzers/svg.ex

30 lines
596 B
Elixir
Raw Normal View History

2019-11-26 01:06:40 +01:00
defmodule Philomena.Analyzers.Svg do
def analyze(file) do
2020-05-16 19:48:54 +02:00
stats = stats(file)
2019-11-26 01:06:40 +01:00
%{
extension: "svg",
mime_type: "image/svg+xml",
animated?: false,
duration: 0.0,
2020-05-16 19:48:54 +02:00
dimensions: stats.dimensions
2019-11-26 01:06:40 +01:00
}
end
2020-05-16 19:48:54 +02:00
defp stats(file) do
2020-05-22 00:20:51 +02:00
case System.cmd("identify", ["-format", "%W %H\n", file]) do
2019-11-26 01:06:40 +01:00
{output, 0} ->
2020-05-22 00:20:51 +02:00
[width, height] =
2019-11-26 01:06:40 +01:00
output
|> String.trim()
|> String.split(" ")
|> Enum.map(&String.to_integer/1)
2020-05-16 19:48:54 +02:00
%{dimensions: {width, height}}
2019-11-26 01:06:40 +01:00
2020-05-16 19:48:54 +02:00
_ ->
%{dimensions: {0, 0}}
2019-11-26 01:06:40 +01:00
end
end
2020-01-11 05:20:19 +01:00
end