Skip to content

Commit 89b7a59

Browse files
committed
Add ffmpeg to install requirements in CI
1 parent 800c686 commit 89b7a59

5 files changed

Lines changed: 15 additions & 17 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ jobs:
3434
matrix:
3535
include:
3636
# minimum required versions
37-
- otp: "26.2.5.6"
38-
elixir: "1.16.2-otp-26"
3937
- otp: "26.2.5.6"
4038
elixir: "1.17.2-otp-26"
4139
- otp: "27.2"
@@ -92,7 +90,7 @@ jobs:
9290

9391
# Step: Install the dependencies for libvips
9492
- name: Install libvips build dependencies
95-
run: sudo apt-get install build-essential meson libwebp-dev libheif-dev libavif-dev libcgif0 libcgif-dev libxml2-dev libfftw3-dev libmagickwand-dev libopenexr-dev liborc-0.4-0 gobject-introspection libgirepository1.0-dev libgsf-1-dev libglib2.0-dev liborc-0.4-dev libpango1.0-dev libpangocairo-1.0-0 libpangoft2-1.0-0 curl xz-utils
93+
run: sudo apt-get install build-essential meson libwebp-dev libheif-dev libavif-dev libcgif0 libcgif-dev libxml2-dev libfftw3-dev libmagickwand-dev libopenexr-dev liborc-0.4-0 gobject-introspection libgirepository1.0-dev libgsf-1-dev libglib2.0-dev liborc-0.4-dev libpango1.0-dev libpangocairo-1.0-0 libpangoft2-1.0-0 curl xz-utils fffmpeg
9694

9795
# Install latest libvips
9896
- name: Get latest version of libvips

CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ The primary intent of this release is to stablise the code in readiness for a 1.
1717

1818
* `Image.Color` has been removed. Color handling now lives in two new modules and one new dependency:
1919

20-
* `Image.Pixel``to_pixel/3` resolves any colour input (atom, hex string, named colour, numeric list, `Color.*` struct) into a pixel matching the **interpretation, value range, and band layout** of a target image. This fixes a long-standing bug where colour arguments were treated as raw 8-bit sRGB regardless of the image's actual colour space (so `:red` against a Lab image would yield `[255, 0, 0]` instead of Lab red `[53.24, 80.09, 67.20]`). Every option validator that accepts a colour now routes through `Image.Pixel.to_pixel/3`. `Image.Pixel` also exposes `to_srgb/1`, `transparency/1`, the `is_pixel/1` defguard, and the `t/0` type.
20+
* `Image.Pixel``to_pixel/3` resolves any colour input (atom, hex string, named colour, numeric list, `Color.*` struct) into a pixel matching the interpretation, value range, and band layout of a target image. This fixes a long-standing bug where colour arguments were treated as raw 8-bit sRGB regardless of the image's actual colour space (so `:red` against a Lab image would yield `[255, 0, 0]` instead of Lab red `[53.24, 80.09, 67.20]`). Every option validator that accepts a colour now routes through `Image.Pixel.to_pixel/3`. `Image.Pixel` also exposes `to_srgb/1`, `transparency/1`, the `is_pixel/1` defguard, and the `t/0` type.
2121

2222
* `Image.ICCProfile` — the libvips ICC profile helpers (`inbuilt/0`, `known?/1`, `is_inbuilt/1`, `t/0`).
2323

24-
* The new `:color` dependency — a full-featured colour science library (`Color.new/2`, `Color.convert/2,3`, `Color.SRGB.parse/1`, `Color.CSSNames`, all the major colour spaces, gamut mapping, ICC rendering intents). Hex parsing now supports `#RGB`, `#RGBA`, `#RRGGBB`, and `#RRGGBBAA`.
24+
* The new `:color` dependency — a full-featured colour library (`Color.new/2`, `Color.convert/2,3`, `Color.SRGB.parse/1`, `Color.CSSNames`, all the major colour spaces, gamut mapping, ICC rendering intents). Hex parsing now supports `#RGB`, `#RGBA`, `#RRGGBB`, and `#RRGGBBAA`.
2525

2626
* `Image.Classification` and `Image.Generation` have moved to a new sibling package, [`:image_detection`](https://hex.pm/packages/image_detection). The two modules keep their fully-qualified names (`Image.Classification` and `Image.Generation`) so that existing call sites continue to work — they just live in a different OTP application now. To restore the previous functionality, add `:image_detection` to your `mix.exs`:
2727

@@ -34,7 +34,7 @@ The primary intent of this release is to stablise the code in readiness for a 1.
3434
]
3535
end
3636

37-
* `:bumblebee` is no longer a dependency of `:image`. It is brought in transitively only when you add `:image_detection`. The `:nx`, `:nx_image`, `:scholar`, `:exla`, and `:rustler` optional deps stay in `:image` because `Image.to_nx/2`, `Image.from_nx/1`, `Image.k_means/2`, and a few internal pipelines still use them.
37+
* `:bumblebee` is no longer a dependency of `:image`. It is configured in the new library `image_detection`.
3838

3939
* `Image.Video` is now backed by [Xav](https://hex.pm/packages/xav) (a thin Elixir wrapper around FFmpeg) instead of `:evision` / OpenCV. The public API surface is largely unchanged but the underlying type, options, and a few semantic details have moved:
4040

lib/image/options/text.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ defmodule Image.Options.Text do
261261
@doc false
262262
def validate_color(option, color, options) do
263263
cond do
264-
(is_binary(color) or is_atom(color)) && match?({:ok, _}, Color.CSSNames.lookup(color)) ->
264+
(is_binary(color) or is_atom(color)) && match?({:ok, _}, Color.CSS.Names.lookup(color)) ->
265265
{:cont, options}
266266

267267
match?(<<"#", _rest::bytes-6>>, color) ->

mix.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ defmodule Image.MixProject do
6161
# {:vix, path: "../vix"},
6262

6363
# Color science: conversions, gamut mapping, parsing.
64-
{:color, github: "elixir-image/color"},
64+
{:color, "~> 0.3"},
6565

6666
# FFmpeg bindings, used by Image.Video for video frame
6767
# extraction, seeking, and streaming.
@@ -91,7 +91,7 @@ defmodule Image.MixProject do
9191
# and Scholar for k-means clustering. Image classification
9292
# and image generation moved to the `:image_detection`
9393
# package along with the `:bumblebee` dependency.
94-
{:nx, "~> 0.10", optional: true},
94+
{:nx, "~> 0.11", optional: true},
9595
{:nx_image, "~> 0.1", optional: true},
9696
{:scholar, "~> 0.3", optional: true},
9797
{:exla, "~> 0.9", optional: true},

0 commit comments

Comments
 (0)