Skip to main content

lib/image/plug/pipeline/ops/fade.ex

defmodule Image.Plug.Pipeline.Ops.Fade do
  @moduledoc """
  Alpha-gradient fade-out on one or more edges. `:edges` is
  `:all` or a list drawn from `:top`, `:bottom`, `:left`,
  `:right`. `:length` is either an integer pixel count or a
  float fraction of the relevant dimension. Maps to
  Cloudinary's `e_fade[:N]` (`N` interpreted as a percentage).
  """

  @type edge :: :top | :bottom | :left | :right
  @type t :: %__MODULE__{
          edges: [edge()] | :all,
          length: pos_integer() | float()
        }

  defstruct edges: [:bottom],
            length: 0.2
end