Skip to content

Commit 9a5f545

Browse files
committed
Add Image.tint/2, fade/2, drop_shadow/2; extend minimize_metadata/2 with :keep
1 parent d4aa131 commit 9a5f545

3 files changed

Lines changed: 699 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ This is the changelog for Image version 0.67.0 released on ______, 2026. For ol
2222

2323
* Adds `:lossy` and `:chroma_subsampling` options to `Image.write/3`. `:lossy` (boolean) toggles the lossless wire format on WebP / AVIF and palette-quantisation on PNG. `:chroma_subsampling` selects `:auto` / `:on` (4:2:0) / `:off` (4:4:4) on JPEG and AVIF.
2424

25+
* Adds `Image.tint/2` — colour-tinted monochrome via a single 3×3 luminance + tint colour-recombination matrix. Used for the imgix `monochrome=#hex` / ImageKit `e-monochrome` family of CDN options.
26+
27+
* Adds `Image.fade/2` — alpha-gradient fade-out on one or more edges via SVG `<linearGradient>` masks combined with a per-pixel min. Supports `:top`, `:bottom`, `:left`, `:right`, or `:all`, with `:length` as either pixels or a fraction of the relevant dimension. Used for Cloudinary `e_fade`.
28+
29+
* Adds `Image.drop_shadow/2` — soft drop shadow under the image's alpha-shaped silhouette. Composites a Gaussian-blurred, opacity-scaled, tinted copy of the alpha band beneath the original. Used for ImageKit `e-shadow` and Cloudinary `e_shadow`.
30+
31+
* Adds `Image.minimize_metadata/2` with a `:keep` option — caller-controlled list of EXIF fields to preserve when minimising metadata. The 1-arity variant continues to default to `[:copyright, :artist]`; the 2-arity variant lets callers pass `keep: [:copyright]` (preserve only copyright), `keep: []` (strip everything), or any other subset.
32+
2533
### Bug Fixes
2634

2735
* `Image.add_alpha/2`'s `:opaque` and `:transparent` atoms now produce alpha = 255 and alpha = 0 respectively, matching the standard libvips / RGBA convention. The previous values were inverted relative to their names; integer values pass through unchanged.

0 commit comments

Comments
 (0)