Packages
literature
0.1.7
0.5.1
0.5.0
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
retired
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.32
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
A simple CMS / Blog
Current section
Files
Jump to
Current section
Files
lib/literature/uploaders/processor.ex
defmodule Literature.Uploaders.Processor do
@moduledoc false
alias Waffle.Transformations.Convert
def process(definition, version, {file, scope}) do
transform = definition.transform(version, {file, scope})
apply_transformation(file, transform)
end
defp apply_transformation(_, :skip), do: [{:ok, nil}]
defp apply_transformation(file, :noaction), do: [{:ok, file}]
defp apply_transformation(file, {cmd, conversion}) do
file
|> generates_image_sizes(conversion)
|> Enum.map(&Convert.apply(cmd, file, &1))
end
defp apply_transformation(file, {cmd, conversion, extension}) do
file
|> generates_image_sizes(conversion)
|> Enum.map(&Convert.apply(cmd, file, &1, extension))
end
# To generate image sizes from 100px until the image width
defp generates_image_sizes(%{path: path}, conversion) do
%{width: width} =
path
|> Mogrify.open()
|> Mogrify.verbose()
Range.new(100, width, 100)
|> Enum.map(&"-resize #{&1}x#{&1}^ #{conversion}")
end
end