ImagePipe requires Elixir 1.18 or newer. Add it to your application's
dependencies in mix.exs:
def deps do
[
{:image_pipe, "~> 0.1.0"}
]
endRun mix deps.get in your application.
ImagePipe needs req 0.8.0-rc.0
ImagePipe depends on req ~> 0.8.0-rc.0. If your app locks an older
version, as a new Phoenix app does, mix deps.get stops with a version
conflict over req. Unlock it and fetch again:
mix deps.unlock req
mix deps.get
ImagePipe uses Image and Vix for libvips processing. Available input and output codecs depend on the native build. See output formats.
Serving images with ImagePipe.Plug uses your application's HTTP server, such
as an existing Phoenix endpoint. Processing images in Elixir code needs no web
server. The documentation overview lists the guide to start with
for each use.
Native format support
Supported inputs are JPEG (including UltraHDR), PNG, WebP, TIFF, HEIF/AVIF,
JPEG XL, JPEG 2000, and GIF. Each needs its loader in the deployed libvips build.
A missing loader fails the request with 415.
ImagePipe checks image signatures and accepts only matching loaders. Other
formats, including SVG, BMP, camera RAW, and AVIF image sequences, are rejected
with 415, even if the installed libvips has a loader for them.
Installing only the URL builder
An application that only generates URLs for a separate image service can depend on the pure Elixir URL builder alone:
{:image_pipe_url, "~> 0.1.0"}It provides ImagePipe.URL with the same URL grammar, preset references,
signing, and source encryption. See Building URLs for the server.