Helpers for the ICC color profiles known to libvips.
What "built-in" means
libvips ships with a small set of built-in colour profile names
(:srgb, :cmyk, :p3). They are loaded by libvips itself on
demand from its own profile collection — :image does not ship
any .icc files. The four atoms are simply the names libvips
recognises and resolves to its own internal profiles when you pass
them to a vips operation that takes a profile.
Anything else (the Path.t/0 form) is treated as a path to an
.icc file on disk. Absolute paths are used as-is. Relative paths
are resolved against the libvips profile search path. The path is
validated by attempting to load it with
Vix.Vips.Operation.profile_load/1.
API summary
inbuilt/0returns the four built-in atoms.is_inbuilt/1is adefguardfor the same set.known?/1returnstruefor any built-in or any loadable file path. Use it to validate user-supplied profile arguments.
Migration
This module is the new home for the ICC-related helpers that used
to live in Image.Color. The contracts are unchanged.
Summary
Functions
Returns the list of profiles built into libvips.
Guards whether a profile is one of the built-ins.
Returns true if the given profile is known and usable.
Types
@type t() :: :none | :srgb | :cmyk | :p3 | Path.t()
An ICC profile reference.
:nonemeans no profile.:srgb,:cmyk, and:p3refer to the libvips built-in profiles.- A path is any file system path. Relative paths are resolved against the system profile directory.
Functions
@spec inbuilt() :: [t()]
Returns the list of profiles built into libvips.
Examples
iex> Image.ICCProfile.inbuilt()
[:none, :srgb, :cmyk, :p3]
Guards whether a profile is one of the built-ins.
Returns true if the given profile is known and usable.
Built-in atoms (:none, :srgb, :cmyk, :p3) always return
true. File paths are validated by trying to load them with
Vix.Vips.Operation.profile_load/1.
Examples
iex> Image.ICCProfile.known?(:srgb)
true
iex> Image.ICCProfile.known?(:none)
true
iex> Image.ICCProfile.known?("/no/such/file.icc")
false