From ecfc77c18504f8be58a8dca3060e0c195ecc2332 Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Tue, 15 Jul 2025 17:21:09 +0100 Subject: [PATCH] Docs: split changelog into per-release files Use these as the body for (future) GitHub releases --- .github/workflows/ci.yml | 7 + docs/astro.config.mjs | 17 +- docs/package.json | 5 +- docs/src/content.config.ts | 3 + docs/src/content/docs/changelog.md | 2178 -------------------- docs/src/content/docs/changelog/_meta.yml | 1 + docs/src/content/docs/changelog/v0.10.0.md | 22 + docs/src/content/docs/changelog/v0.10.1.md | 12 + docs/src/content/docs/changelog/v0.11.0.md | 30 + docs/src/content/docs/changelog/v0.11.1.md | 12 + docs/src/content/docs/changelog/v0.11.2.md | 10 + docs/src/content/docs/changelog/v0.11.3.md | 8 + docs/src/content/docs/changelog/v0.11.4.md | 16 + docs/src/content/docs/changelog/v0.12.0.md | 38 + docs/src/content/docs/changelog/v0.12.1.md | 15 + docs/src/content/docs/changelog/v0.12.2.md | 20 + docs/src/content/docs/changelog/v0.13.0.md | 47 + docs/src/content/docs/changelog/v0.13.1.md | 8 + docs/src/content/docs/changelog/v0.14.0.md | 39 + docs/src/content/docs/changelog/v0.14.1.md | 26 + docs/src/content/docs/changelog/v0.15.0.md | 20 + docs/src/content/docs/changelog/v0.15.1.md | 68 + docs/src/content/docs/changelog/v0.16.0.md | 42 + docs/src/content/docs/changelog/v0.16.1.md | 21 + docs/src/content/docs/changelog/v0.16.2.md | 8 + docs/src/content/docs/changelog/v0.17.0.md | 39 + docs/src/content/docs/changelog/v0.17.1.md | 15 + docs/src/content/docs/changelog/v0.17.2.md | 12 + docs/src/content/docs/changelog/v0.17.3.md | 20 + docs/src/content/docs/changelog/v0.18.0.md | 60 + docs/src/content/docs/changelog/v0.18.1.md | 8 + docs/src/content/docs/changelog/v0.18.2.md | 19 + docs/src/content/docs/changelog/v0.18.3.md | 12 + docs/src/content/docs/changelog/v0.18.4.md | 8 + docs/src/content/docs/changelog/v0.19.0.md | 46 + docs/src/content/docs/changelog/v0.19.1.md | 16 + docs/src/content/docs/changelog/v0.20.0.md | 7 + docs/src/content/docs/changelog/v0.20.1.md | 15 + docs/src/content/docs/changelog/v0.20.2.md | 20 + docs/src/content/docs/changelog/v0.20.3.md | 8 + docs/src/content/docs/changelog/v0.20.4.md | 12 + docs/src/content/docs/changelog/v0.20.5.md | 8 + docs/src/content/docs/changelog/v0.20.6.md | 33 + docs/src/content/docs/changelog/v0.20.7.md | 7 + docs/src/content/docs/changelog/v0.20.8.md | 12 + docs/src/content/docs/changelog/v0.21.0.md | 39 + docs/src/content/docs/changelog/v0.21.1.md | 31 + docs/src/content/docs/changelog/v0.21.2.md | 27 + docs/src/content/docs/changelog/v0.21.3.md | 9 + docs/src/content/docs/changelog/v0.22.0.md | 20 + docs/src/content/docs/changelog/v0.22.1.md | 15 + docs/src/content/docs/changelog/v0.23.0.md | 32 + docs/src/content/docs/changelog/v0.23.1.md | 24 + docs/src/content/docs/changelog/v0.23.2.md | 12 + docs/src/content/docs/changelog/v0.23.3.md | 18 + docs/src/content/docs/changelog/v0.23.4.md | 12 + docs/src/content/docs/changelog/v0.24.0.md | 28 + docs/src/content/docs/changelog/v0.24.1.md | 10 + docs/src/content/docs/changelog/v0.25.0.md | 18 + docs/src/content/docs/changelog/v0.25.1.md | 7 + docs/src/content/docs/changelog/v0.25.2.md | 19 + docs/src/content/docs/changelog/v0.25.3.md | 14 + docs/src/content/docs/changelog/v0.25.4.md | 25 + docs/src/content/docs/changelog/v0.26.0.md | 33 + docs/src/content/docs/changelog/v0.26.1.md | 22 + docs/src/content/docs/changelog/v0.26.2.md | 15 + docs/src/content/docs/changelog/v0.26.3.md | 12 + docs/src/content/docs/changelog/v0.27.0.md | 15 + docs/src/content/docs/changelog/v0.27.1.md | 19 + docs/src/content/docs/changelog/v0.27.2.md | 20 + docs/src/content/docs/changelog/v0.28.0.md | 32 + docs/src/content/docs/changelog/v0.28.1.md | 15 + docs/src/content/docs/changelog/v0.28.2.md | 26 + docs/src/content/docs/changelog/v0.28.3.md | 13 + docs/src/content/docs/changelog/v0.29.0.md | 35 + docs/src/content/docs/changelog/v0.29.1.md | 30 + docs/src/content/docs/changelog/v0.29.2.md | 22 + docs/src/content/docs/changelog/v0.29.3.md | 11 + docs/src/content/docs/changelog/v0.30.0.md | 48 + docs/src/content/docs/changelog/v0.30.1.md | 19 + docs/src/content/docs/changelog/v0.30.2.md | 17 + docs/src/content/docs/changelog/v0.30.3.md | 13 + docs/src/content/docs/changelog/v0.30.4.md | 20 + docs/src/content/docs/changelog/v0.30.5.md | 19 + docs/src/content/docs/changelog/v0.30.6.md | 10 + docs/src/content/docs/changelog/v0.30.7.md | 15 + docs/src/content/docs/changelog/v0.31.0.md | 63 + docs/src/content/docs/changelog/v0.31.1.md | 22 + docs/src/content/docs/changelog/v0.31.2.md | 12 + docs/src/content/docs/changelog/v0.31.3.md | 34 + docs/src/content/docs/changelog/v0.32.0.md | 61 + docs/src/content/docs/changelog/v0.32.1.md | 30 + docs/src/content/docs/changelog/v0.32.2.md | 25 + docs/src/content/docs/changelog/v0.32.3.md | 10 + docs/src/content/docs/changelog/v0.32.4.md | 11 + docs/src/content/docs/changelog/v0.32.5.md | 24 + docs/src/content/docs/changelog/v0.32.6.md | 19 + docs/src/content/docs/changelog/v0.33.0.md | 47 + docs/src/content/docs/changelog/v0.33.1.md | 14 + docs/src/content/docs/changelog/v0.33.2.md | 16 + docs/src/content/docs/changelog/v0.33.3.md | 21 + docs/src/content/docs/changelog/v0.33.4.md | 32 + docs/src/content/docs/changelog/v0.33.5.md | 39 + docs/src/content/docs/changelog/v0.34.0.md | 52 + docs/src/content/docs/changelog/v0.34.1.md | 8 + docs/src/content/docs/changelog/v0.34.2.md | 28 + docs/src/content/docs/changelog/v0.34.3.md | 33 + 107 files changed, 2309 insertions(+), 2183 deletions(-) delete mode 100644 docs/src/content/docs/changelog.md create mode 100644 docs/src/content/docs/changelog/_meta.yml create mode 100644 docs/src/content/docs/changelog/v0.10.0.md create mode 100644 docs/src/content/docs/changelog/v0.10.1.md create mode 100644 docs/src/content/docs/changelog/v0.11.0.md create mode 100644 docs/src/content/docs/changelog/v0.11.1.md create mode 100644 docs/src/content/docs/changelog/v0.11.2.md create mode 100644 docs/src/content/docs/changelog/v0.11.3.md create mode 100644 docs/src/content/docs/changelog/v0.11.4.md create mode 100644 docs/src/content/docs/changelog/v0.12.0.md create mode 100644 docs/src/content/docs/changelog/v0.12.1.md create mode 100644 docs/src/content/docs/changelog/v0.12.2.md create mode 100644 docs/src/content/docs/changelog/v0.13.0.md create mode 100644 docs/src/content/docs/changelog/v0.13.1.md create mode 100644 docs/src/content/docs/changelog/v0.14.0.md create mode 100644 docs/src/content/docs/changelog/v0.14.1.md create mode 100644 docs/src/content/docs/changelog/v0.15.0.md create mode 100644 docs/src/content/docs/changelog/v0.15.1.md create mode 100644 docs/src/content/docs/changelog/v0.16.0.md create mode 100644 docs/src/content/docs/changelog/v0.16.1.md create mode 100644 docs/src/content/docs/changelog/v0.16.2.md create mode 100644 docs/src/content/docs/changelog/v0.17.0.md create mode 100644 docs/src/content/docs/changelog/v0.17.1.md create mode 100644 docs/src/content/docs/changelog/v0.17.2.md create mode 100644 docs/src/content/docs/changelog/v0.17.3.md create mode 100644 docs/src/content/docs/changelog/v0.18.0.md create mode 100644 docs/src/content/docs/changelog/v0.18.1.md create mode 100644 docs/src/content/docs/changelog/v0.18.2.md create mode 100644 docs/src/content/docs/changelog/v0.18.3.md create mode 100644 docs/src/content/docs/changelog/v0.18.4.md create mode 100644 docs/src/content/docs/changelog/v0.19.0.md create mode 100644 docs/src/content/docs/changelog/v0.19.1.md create mode 100644 docs/src/content/docs/changelog/v0.20.0.md create mode 100644 docs/src/content/docs/changelog/v0.20.1.md create mode 100644 docs/src/content/docs/changelog/v0.20.2.md create mode 100644 docs/src/content/docs/changelog/v0.20.3.md create mode 100644 docs/src/content/docs/changelog/v0.20.4.md create mode 100644 docs/src/content/docs/changelog/v0.20.5.md create mode 100644 docs/src/content/docs/changelog/v0.20.6.md create mode 100644 docs/src/content/docs/changelog/v0.20.7.md create mode 100644 docs/src/content/docs/changelog/v0.20.8.md create mode 100644 docs/src/content/docs/changelog/v0.21.0.md create mode 100644 docs/src/content/docs/changelog/v0.21.1.md create mode 100644 docs/src/content/docs/changelog/v0.21.2.md create mode 100644 docs/src/content/docs/changelog/v0.21.3.md create mode 100644 docs/src/content/docs/changelog/v0.22.0.md create mode 100644 docs/src/content/docs/changelog/v0.22.1.md create mode 100644 docs/src/content/docs/changelog/v0.23.0.md create mode 100644 docs/src/content/docs/changelog/v0.23.1.md create mode 100644 docs/src/content/docs/changelog/v0.23.2.md create mode 100644 docs/src/content/docs/changelog/v0.23.3.md create mode 100644 docs/src/content/docs/changelog/v0.23.4.md create mode 100644 docs/src/content/docs/changelog/v0.24.0.md create mode 100644 docs/src/content/docs/changelog/v0.24.1.md create mode 100644 docs/src/content/docs/changelog/v0.25.0.md create mode 100644 docs/src/content/docs/changelog/v0.25.1.md create mode 100644 docs/src/content/docs/changelog/v0.25.2.md create mode 100644 docs/src/content/docs/changelog/v0.25.3.md create mode 100644 docs/src/content/docs/changelog/v0.25.4.md create mode 100644 docs/src/content/docs/changelog/v0.26.0.md create mode 100644 docs/src/content/docs/changelog/v0.26.1.md create mode 100644 docs/src/content/docs/changelog/v0.26.2.md create mode 100644 docs/src/content/docs/changelog/v0.26.3.md create mode 100644 docs/src/content/docs/changelog/v0.27.0.md create mode 100644 docs/src/content/docs/changelog/v0.27.1.md create mode 100644 docs/src/content/docs/changelog/v0.27.2.md create mode 100644 docs/src/content/docs/changelog/v0.28.0.md create mode 100644 docs/src/content/docs/changelog/v0.28.1.md create mode 100644 docs/src/content/docs/changelog/v0.28.2.md create mode 100644 docs/src/content/docs/changelog/v0.28.3.md create mode 100644 docs/src/content/docs/changelog/v0.29.0.md create mode 100644 docs/src/content/docs/changelog/v0.29.1.md create mode 100644 docs/src/content/docs/changelog/v0.29.2.md create mode 100644 docs/src/content/docs/changelog/v0.29.3.md create mode 100644 docs/src/content/docs/changelog/v0.30.0.md create mode 100644 docs/src/content/docs/changelog/v0.30.1.md create mode 100644 docs/src/content/docs/changelog/v0.30.2.md create mode 100644 docs/src/content/docs/changelog/v0.30.3.md create mode 100644 docs/src/content/docs/changelog/v0.30.4.md create mode 100644 docs/src/content/docs/changelog/v0.30.5.md create mode 100644 docs/src/content/docs/changelog/v0.30.6.md create mode 100644 docs/src/content/docs/changelog/v0.30.7.md create mode 100644 docs/src/content/docs/changelog/v0.31.0.md create mode 100644 docs/src/content/docs/changelog/v0.31.1.md create mode 100644 docs/src/content/docs/changelog/v0.31.2.md create mode 100644 docs/src/content/docs/changelog/v0.31.3.md create mode 100644 docs/src/content/docs/changelog/v0.32.0.md create mode 100644 docs/src/content/docs/changelog/v0.32.1.md create mode 100644 docs/src/content/docs/changelog/v0.32.2.md create mode 100644 docs/src/content/docs/changelog/v0.32.3.md create mode 100644 docs/src/content/docs/changelog/v0.32.4.md create mode 100644 docs/src/content/docs/changelog/v0.32.5.md create mode 100644 docs/src/content/docs/changelog/v0.32.6.md create mode 100644 docs/src/content/docs/changelog/v0.33.0.md create mode 100644 docs/src/content/docs/changelog/v0.33.1.md create mode 100644 docs/src/content/docs/changelog/v0.33.2.md create mode 100644 docs/src/content/docs/changelog/v0.33.3.md create mode 100644 docs/src/content/docs/changelog/v0.33.4.md create mode 100644 docs/src/content/docs/changelog/v0.33.5.md create mode 100644 docs/src/content/docs/changelog/v0.34.0.md create mode 100644 docs/src/content/docs/changelog/v0.34.1.md create mode 100644 docs/src/content/docs/changelog/v0.34.2.md create mode 100644 docs/src/content/docs/changelog/v0.34.3.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec95b072..da3af0b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -314,6 +314,12 @@ jobs: path: npm - name: Create npm workspace tarball run: tar -vcaf npm-workspace.tar.xz --directory npm --exclude=from-local-build.js . + - name: Parse semver for tag + if: startsWith(github.ref, 'refs/tags/v') + uses: madhead/semver-utils@v4 + id: semver + with: + version: ${{ github.ref_name }} - name: Create GitHub release for tag if: startsWith(github.ref, 'refs/tags/v') uses: ncipollo/release-action@v1 @@ -322,3 +328,4 @@ jobs: artifactContentType: application/x-xz prerelease: ${{ contains(github.ref, '-rc') }} makeLatest: ${{ !contains(github.ref, '-rc') }} + bodyFile: "docs/src/content/docs/changelog/v${{ steps.semver.outputs.major }}.${{ steps.semver.outputs.minor }}.${{ steps.semver.outputs.patch }}.md" diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 87ffdab2..49b1c00e 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -1,6 +1,9 @@ // @ts-check import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; +import starlightAutoSidebar from 'starlight-auto-sidebar'; + +import { version } from '../package.json'; export default defineConfig({ site: 'https://sharp.pixelplumbing.com', @@ -68,12 +71,20 @@ export default defineConfig({ ] }, { label: 'Performance', slug: 'performance' }, - { label: 'Changelog', slug: 'changelog' } + { + label: 'Changelog', + collapsed: true, + autogenerate: { directory: 'changelog' } + } ], social: [ { icon: 'openCollective', label: 'Open Collective', href: 'https://opencollective.com/libvips' }, { icon: 'github', label: 'GitHub', href: 'https://github.com/lovell/sharp' } - ] + ], + plugins: [starlightAutoSidebar()] }) - ] + ], + redirects: { + '/changelog': `/changelog/v${version}` + } }); diff --git a/docs/package.json b/docs/package.json index cfb0f652..c433dea0 100644 --- a/docs/package.json +++ b/docs/package.json @@ -11,7 +11,8 @@ "astro": "astro" }, "dependencies": { - "@astrojs/starlight": "^0.34.3", - "astro": "^5.7.13" + "@astrojs/starlight": "^0.34.6", + "astro": "^5.11.1", + "starlight-auto-sidebar": "^0.1.2" } } diff --git a/docs/src/content.config.ts b/docs/src/content.config.ts index d9ee8c9d..06cf1292 100644 --- a/docs/src/content.config.ts +++ b/docs/src/content.config.ts @@ -1,7 +1,10 @@ import { defineCollection } from 'astro:content'; import { docsLoader } from '@astrojs/starlight/loaders'; import { docsSchema } from '@astrojs/starlight/schema'; +import { autoSidebarLoader } from 'starlight-auto-sidebar/loader' +import { autoSidebarSchema } from 'starlight-auto-sidebar/schema' export const collections = { docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), + autoSidebar: defineCollection({ loader: autoSidebarLoader(), schema: autoSidebarSchema() }) }; diff --git a/docs/src/content/docs/changelog.md b/docs/src/content/docs/changelog.md deleted file mode 100644 index 8b19249b..00000000 --- a/docs/src/content/docs/changelog.md +++ /dev/null @@ -1,2178 +0,0 @@ ---- -title: Changelog ---- - -## v0.34 - *hat* - -Requires libvips v8.17.1 - -### v0.34.3 - 10th July 2025 - -* Upgrade to libvips v8.17.1 for upstream bug fixes. - -* Add "Magic Kernel Sharp" (no relation) to resizing kernels. - -* Deprecate top-level, format-specific constructor parameters, e.g. `subifd` becomes `tiff.subifd`. - -* Expose `stylesheet` and `highBitdepth` SVG input parameters. - -* Expose `keepDuplicateFrames` GIF output parameter. - -* Add support for RAW digital camera image input. Requires libvips compiled with libraw support. - -* Provide XMP metadata as a string, as well as a Buffer, where possible. - -* Add `pageHeight` option to `create` and `raw` input for animated images. - [#3236](https://github.com/lovell/sharp/issues/3236) - -* Expose JPEG 2000 `oneshot` decoder option. - [#4262](https://github.com/lovell/sharp/pull/4262) - [@mbklein](https://github.com/mbklein) - -* Support composite operation with non-sRGB pipeline colourspace. - [#4412](https://github.com/lovell/sharp/pull/4412) - [@kleisauke](https://github.com/kleisauke) - -* Add `keepXmp` and `withXmp` for control over output XMP metadata. - [#4416](https://github.com/lovell/sharp/pull/4416) - [@tpatel](https://github.com/tpatel) - -### v0.34.2 - 20th May 2025 - -* Ensure animated GIF to WebP conversion retains loop (regression in 0.34.0). - [#3394](https://github.com/lovell/sharp/issues/3394) - -* Ensure `pdfBackground` constructor property is used. - [#4207](https://github.com/lovell/sharp/pull/4207) - [#4398](https://github.com/lovell/sharp/issues/4398) - -* Add experimental support for prebuilt Windows ARM64 binaries. - [#4375](https://github.com/lovell/sharp/pull/4375) - [@hans00](https://github.com/hans00) - -* Ensure resizing with a `fit` of `contain` supports multiple alpha channels. - [#4382](https://github.com/lovell/sharp/issues/4382) - -* TypeScript: Ensure `metadata` response more closely matches reality. - [#4383](https://github.com/lovell/sharp/issues/4383) - -* TypeScript: Ensure `smartDeblock` property is included in WebP definition. - [#4387](https://github.com/lovell/sharp/pull/4387) - [@Stephen-X](https://github.com/Stephen-X) - -* Ensure support for wide-character filenames on Windows (regression in 0.34.0). - [#4391](https://github.com/lovell/sharp/issues/4391) - -### v0.34.1 - 7th April 2025 - -* TypeScript: Ensure new `autoOrient` property is optional. - [#4362](https://github.com/lovell/sharp/pull/4362) - [@styfle](https://github.com/styfle) - -### v0.34.0 - 4th April 2025 - -* Breaking: Support array of input images to be joined or animated. - [#1580](https://github.com/lovell/sharp/issues/1580) - -* Breaking: Ensure `removeAlpha` removes all alpha channels. - [#2266](https://github.com/lovell/sharp/issues/2266) - -* Breaking: Non-animated GIF output defaults to no-loop instead of loop-forever. - [#3394](https://github.com/lovell/sharp/issues/3394) - -* Breaking: Support `info.size` on wide-character systems via upgrade to C++17. - [#3943](https://github.com/lovell/sharp/issues/3943) - -* Breaking: Ensure `background` metadata can be parsed by `color` package. - [#4090](https://github.com/lovell/sharp/issues/4090) - -* Add `isPalette` and `bitsPerSample` to metadata, deprecate `paletteBitDepth`. - -* Expose WebP `smartDeblock` output option. - -* Prevent use of linux-x64 binaries with v1 microarchitecture. - -* Add `autoOrient` operation and constructor option. - [#4151](https://github.com/lovell/sharp/pull/4151) - [@happycollision](https://github.com/happycollision) - -* TypeScript: Ensure channel counts use the correct range. - [#4197](https://github.com/lovell/sharp/pull/4197) - [@DavidVaness](https://github.com/DavidVaness) - -* Improve support for ppc64le architecture. - [#4203](https://github.com/lovell/sharp/pull/4203) - [@sumitd2](https://github.com/sumitd2) - -* Add `pdfBackground` constructor property. - [#4207](https://github.com/lovell/sharp/pull/4207) - [@calebmer](https://github.com/calebmer) - -* Expose erode and dilate operations. - [#4243](https://github.com/lovell/sharp/pull/4243) - [@qpincon](https://github.com/qpincon) - -* Add support for RGBE images. Requires libvips compiled with radiance support. - [#4316](https://github.com/lovell/sharp/pull/4316) - [@florentzabera](https://github.com/florentzabera) - -* Allow wide-gamut HEIF output at higher bitdepths. - [#4344](https://github.com/lovell/sharp/issues/4344) - -## v0.33 - *gauge* - -Requires libvips v8.15.3 - -### v0.33.5 - 16th August 2024 - -* Upgrade to libvips v8.15.3 for upstream bug fixes. - -* Add `pageHeight` and `pages` to response of multi-page output. - [#3411](https://github.com/lovell/sharp/issues/3411) - -* Ensure option to force use of a globally-installed libvips works correctly. - [#4111](https://github.com/lovell/sharp/pull/4111) - [@project0](https://github.com/project0) - -* Minimise use of `engines` property to improve yarn v1 support. - [#4130](https://github.com/lovell/sharp/issues/4130) - -* Ensure `sharp.format.heif` includes only AVIF when using prebuilt binaries. - [#4132](https://github.com/lovell/sharp/issues/4132) - -* Add support to recomb operation for 4x4 matrices. - [#4147](https://github.com/lovell/sharp/pull/4147) - [@ton11797](https://github.com/ton11797) - -* Expose PNG text chunks as `comments` metadata. - [#4157](https://github.com/lovell/sharp/pull/4157) - [@nkeynes](https://github.com/nkeynes) - -* Expose optional `precision` and `minAmplitude` parameters of `blur` operation. - [#4168](https://github.com/lovell/sharp/pull/4168) - [#4172](https://github.com/lovell/sharp/pull/4172) - [@marcosc90](https://github.com/marcosc90) - -* Ensure `keepIccProfile` avoids colour transformation where possible. - [#4186](https://github.com/lovell/sharp/issues/4186) - -* TypeScript: `chromaSubsampling` metadata is optional. - [#4191](https://github.com/lovell/sharp/pull/4191) - [@DavidVaness](https://github.com/DavidVaness) - -### v0.33.4 - 16th May 2024 - -* Remove experimental status from `pipelineColourspace`. - -* Reduce default concurrency when musl thread over-subscription detected. - -* TypeScript: add missing definitions for `OverlayOptions`. - [#4048](https://github.com/lovell/sharp/pull/4048) - [@ike-gg](https://github.com/ike-gg) - -* Install: add advanced option to force use of a globally-installed libvips. - [#4060](https://github.com/lovell/sharp/issues/4060) - -* Expose `bilinear` resizing kernel (and interpolator). - [#4061](https://github.com/lovell/sharp/issues/4061) - -* Ensure `extend` operation stays sequential for multi-page TIFF (regression in 0.32.0). - [#4069](https://github.com/lovell/sharp/issues/4069) - -* Tighten validation of constructor `text` integer properties. - [#4071](https://github.com/lovell/sharp/issues/4071) - -* Simplify internal StaySequential logic. - [#4074](https://github.com/lovell/sharp/pull/4074) - [@kleisauke](https://github.com/kleisauke) - -* Ensure negate operation occurs after profile conversion. - [#4096](https://github.com/lovell/sharp/pull/4096) - [@adriaanmeuris](https://github.com/adriaanmeuris) - -### v0.33.3 - 23rd March 2024 - -* Upgrade to libvips v8.15.2 for upstream bug fixes. - -* Ensure `keepIccProfile` retains P3 and CMYK input profiles. - [#3906](https://github.com/lovell/sharp/issues/3906) - [#4008](https://github.com/lovell/sharp/issues/4008) - -* Ensure `text.wrap` property can accept `word-char` as value. - [#4028](https://github.com/lovell/sharp/pull/4028) - [@yolopunk](https://github.com/yolopunk) - -* Ensure `clone` takes a deep copy of existing options. - [#4029](https://github.com/lovell/sharp/issues/4029) - -* Add `bitdepth` option to `heif` output (prebuilt binaries support 8-bit only). - [#4036](https://github.com/lovell/sharp/pull/4036) - [@mertalev](https://github.com/mertalev) - -### v0.33.2 - 12th January 2024 - -* Upgrade to libvips v8.15.1 for upstream bug fixes. - -* TypeScript: add definition for `keepMetadata`. - [#3914](https://github.com/lovell/sharp/pull/3914) - [@abhi0498](https://github.com/abhi0498) - -* Ensure `extend` operation stays sequential when copying (regression in 0.32.0). - [#3928](https://github.com/lovell/sharp/issues/3928) - -* Improve error handling for unsupported multi-page rotation. - [#3940](https://github.com/lovell/sharp/issues/3940) - -### v0.33.1 - 17th December 2023 - -* Add support for Yarn Plug'n'Play filesystem layout. - [#3888](https://github.com/lovell/sharp/issues/3888) - -* Emit warning when attempting to use invalid ICC profiles. - [#3895](https://github.com/lovell/sharp/issues/3895) - -* Ensure `VIPS_NOVECTOR` environment variable is respected. - [#3897](https://github.com/lovell/sharp/pull/3897) - [@icetee](https://github.com/icetee) - -### v0.33.0 - 29th November 2023 - -* Drop support for Node.js 14 and 16, now requires Node.js ^18.17.0 or >= 20.3.0 - -* Prebuilt binaries distributed via npm registry and installed via package manager. - -* Building from source requires dependency on `node-addon-api`. - -* Remove `sharp.vendor`. - -* Partially deprecate `withMetadata()`, use `withExif()` and `withIccProfile()`. - -* Add experimental support for WebAssembly-based runtimes. - [@RReverser](https://github.com/RReverser) - -* Options for `trim` operation must be an Object, add new `lineArt` option. - [#2363](https://github.com/lovell/sharp/issues/2363) - -* Improve luminance of `tint` operation with weighting function. - [#3338](https://github.com/lovell/sharp/issues/3338) - [@jcupitt](https://github.com/jcupitt) - -* Ensure all `Error` objects contain a `stack` property. - [#3653](https://github.com/lovell/sharp/issues/3653) - -* Make `compression` option of `heif` mandatory to help reduce HEIF vs HEIC confusion. - [#3740](https://github.com/lovell/sharp/issues/3740) - -* Ensure correct interpretation of 16-bit raw input. - [#3808](https://github.com/lovell/sharp/issues/3808) - -* Add support for `miniswhite` when using TIFF output. - [#3812](https://github.com/lovell/sharp/pull/3812) - [@dnsbty](https://github.com/dnsbty) - -* TypeScript: add missing definition for `withMetadata` boolean. - [#3823](https://github.com/lovell/sharp/pull/3823) - [@uhthomas](https://github.com/uhthomas) - -* Add more fine-grained control over output metadata. - [#3824](https://github.com/lovell/sharp/issues/3824) - -* Ensure multi-page extract remains sequential. - [#3837](https://github.com/lovell/sharp/issues/3837) - -## v0.32 - *flow* - -Requires libvips v8.14.5 - -### v0.32.6 - 18th September 2023 - -* Upgrade to libvips v8.14.5 for upstream bug fixes. - -* Ensure composite tile images are fully decoded (regression in 0.32.0). - [#3767](https://github.com/lovell/sharp/issues/3767) - -* Ensure `withMetadata` can add ICC profiles to RGB16 output. - [#3773](https://github.com/lovell/sharp/issues/3773) - -* Ensure `withMetadata` does not reduce 16-bit images to 8-bit (regression in 0.32.5). - [#3773](https://github.com/lovell/sharp/issues/3773) - -* TypeScript: Add definitions for block and unblock. - [#3799](https://github.com/lovell/sharp/pull/3799) - [@ldrick](https://github.com/ldrick) - -### v0.32.5 - 15th August 2023 - -* Upgrade to libvips v8.14.4 for upstream bug fixes. - -* TypeScript: Add missing `WebpPresetEnum` to definitions. - [#3748](https://github.com/lovell/sharp/pull/3748) - [@pilotso11](https://github.com/pilotso11) - -* Ensure compilation using musl v1.2.4. - [#3755](https://github.com/lovell/sharp/pull/3755) - [@kleisauke](https://github.com/kleisauke) - -* Ensure resize with a `fit` of `inside` respects 90/270 degree rotation. - [#3756](https://github.com/lovell/sharp/issues/3756) - -* TypeScript: Ensure `minSize` property of `WebpOptions` is boolean. - [#3758](https://github.com/lovell/sharp/pull/3758) - [@sho-xizz](https://github.com/sho-xizz) - -* Ensure `withMetadata` adds default sRGB profile. - [#3761](https://github.com/lovell/sharp/issues/3761) - -### v0.32.4 - 21st July 2023 - -* Upgrade to libvips v8.14.3 for upstream bug fixes. - -* Expose ability to (un)block low-level libvips operations by name. - -* Prebuilt binaries: restore support for tile-based output. - [#3581](https://github.com/lovell/sharp/issues/3581) - -### v0.32.3 - 14th July 2023 - -* Expose `preset` option for WebP output. - [#3639](https://github.com/lovell/sharp/issues/3639) - -* Ensure decoding remains sequential for all operations (regression in 0.32.2). - [#3725](https://github.com/lovell/sharp/issues/3725) - -### v0.32.2 - 11th July 2023 - -* Limit HEIF output dimensions to 16384x16384, matches libvips. - -* Ensure exceptions are not thrown when terminating. - [#3569](https://github.com/lovell/sharp/issues/3569) - -* Ensure the same access method is used for all inputs (regression in 0.32.0). - [#3669](https://github.com/lovell/sharp/issues/3669) - -* Improve detection of jp2 filename extensions. - [#3674](https://github.com/lovell/sharp/pull/3674) - [@bianjunjie1981](https://github.com/bianjunjie1981) - -* Guard use of smartcrop premultiplied option to prevent warning (regression in 0.32.1). - [#3710](https://github.com/lovell/sharp/issues/3710) - -* Prevent over-compute in affine-based rotate before resize. - [#3722](https://github.com/lovell/sharp/issues/3722) - -* Allow sequential read for EXIF-based auto-orientation. - [#3725](https://github.com/lovell/sharp/issues/3725) - -### v0.32.1 - 27th April 2023 - -* Add experimental `unflatten` operation. - [#3461](https://github.com/lovell/sharp/pull/3461) - [@antonmarsden](https://github.com/antonmarsden) - -* Ensure use of `flip` operation forces random access read (regression in 0.32.0). - [#3600](https://github.com/lovell/sharp/issues/3600) - -* Ensure `linear` operation works with 16-bit input (regression in 0.31.3). - [#3605](https://github.com/lovell/sharp/issues/3605) - -* Install: ensure proxy URLs are logged correctly. - [#3615](https://github.com/lovell/sharp/pull/3615) - [@TomWis97](https://github.com/TomWis97) - -* Ensure profile-less CMYK to CMYK roundtrip skips colourspace conversion. - [#3620](https://github.com/lovell/sharp/issues/3620) - -* Add support for `modulate` operation when using non-sRGB pipeline colourspace. - [#3620](https://github.com/lovell/sharp/issues/3620) - -* Ensure `trim` operation works with CMYK images (regression in 0.31.0). - [#3636](https://github.com/lovell/sharp/issues/3636) - -* Install: coerce libc version to semver. - [#3641](https://github.com/lovell/sharp/issues/3641) - -### v0.32.0 - 24th March 2023 - -* Default to using sequential rather than random access read where possible. - -* Replace GIF output `optimise` / `optimize` option with `reuse`. - -* Add `progressive` option to GIF output for interlacing. - -* Add `wrap` option to text image creation. - -* Add `formatMagick` property to metadata of images loaded via *magick. - -* Prefer integer (un)premultiply for faster resizing of RGBA images. - -* Add `ignoreIcc` input option to ignore embedded ICC profile. - -* Allow use of GPS (IFD3) EXIF metadata. - [#2767](https://github.com/lovell/sharp/issues/2767) - -* TypeScript definitions are now maintained and published directly, deprecating the `@types/sharp` package. - [#3369](https://github.com/lovell/sharp/issues/3369) - -* Prebuilt binaries: ensure macOS 10.13+ support, as documented. - [#3438](https://github.com/lovell/sharp/issues/3438) - -* Prebuilt binaries: prevent use of glib slice allocator, improves QEMU support. - [#3448](https://github.com/lovell/sharp/issues/3448) - -* Add focus point coordinates to output when using attention based crop. - [#3470](https://github.com/lovell/sharp/pull/3470) - [@ejoebstl](https://github.com/ejoebstl) - -* Expose sharp version as `sharp.versions.sharp`. - [#3471](https://github.com/lovell/sharp/issues/3471) - -* Respect `fastShrinkOnLoad` resize option for WebP input. - [#3516](https://github.com/lovell/sharp/issues/3516) - -* Reduce sharpen `sigma` maximum from 10000 to 10. - [#3521](https://github.com/lovell/sharp/issues/3521) - -* Add support for `ArrayBuffer` input. - [#3548](https://github.com/lovell/sharp/pull/3548) - [@kapouer](https://github.com/kapouer) - -* Add support to `extend` operation for `extendWith` to allow copy/mirror/repeat. - [#3556](https://github.com/lovell/sharp/pull/3556) - [@janaz](https://github.com/janaz) - -* Ensure all async JS callbacks are wrapped to help avoid possible race condition. - [#3569](https://github.com/lovell/sharp/issues/3569) - -* Prebuilt binaries: support for tile-based output temporarily removed due to licensing issue. - [#3581](https://github.com/lovell/sharp/issues/3581) - -* Add support to `normalise` for `lower` and `upper` percentiles. - [#3583](https://github.com/lovell/sharp/pull/3583) - [@LachlanNewman](https://github.com/LachlanNewman) - -## v0.31 - *eagle* - -Requires libvips v8.13.3 - -### v0.31.3 - 21st December 2022 - -* Add experimental support for JPEG-XL images. Requires libvips compiled with libjxl. - [#2731](https://github.com/lovell/sharp/issues/2731) - -* Add runtime detection of V8 memory cage, ensures compatibility with Electron 21 onwards. - [#3384](https://github.com/lovell/sharp/issues/3384) - -* Expose `interFrameMaxError` and `interPaletteMaxError` GIF optimisation properties. - [#3401](https://github.com/lovell/sharp/issues/3401) - -* Allow installation on Linux with glibc patch versions e.g. Fedora 38. - [#3423](https://github.com/lovell/sharp/issues/3423) - -* Expand range of existing `sharpen` parameters to match libvips. - [#3427](https://github.com/lovell/sharp/issues/3427) - -* Prevent possible race condition awaiting metadata of Stream-based input. - [#3451](https://github.com/lovell/sharp/issues/3451) - -* Improve `extractChannel` support for 16-bit output colourspaces. - [#3453](https://github.com/lovell/sharp/issues/3453) - -* Ignore `sequentialRead` option when calculating image statistics. - [#3462](https://github.com/lovell/sharp/issues/3462) - -* Small performance improvement for operations that introduce a non-opaque background. - [#3465](https://github.com/lovell/sharp/issues/3465) - -* Ensure integral output of `linear` operation. - [#3468](https://github.com/lovell/sharp/issues/3468) - -### v0.31.2 - 4th November 2022 - -* Upgrade to libvips v8.13.3 for upstream bug fixes. - -* Ensure manual flip, rotate, resize operation ordering (regression in 0.31.1) - [#3391](https://github.com/lovell/sharp/issues/3391) - -* Ensure auto-rotation works without resize (regression in 0.31.1) - [#3422](https://github.com/lovell/sharp/issues/3422) - -### v0.31.1 - 29th September 2022 - -* Upgrade to libvips v8.13.2 for upstream bug fixes. - -* Ensure `close` event occurs after `end` event for Stream-based output. - [#3313](https://github.com/lovell/sharp/issues/3313) - -* Ensure `limitInputPixels` constructor option uses uint64. - [#3349](https://github.com/lovell/sharp/pull/3349) - [@marcosc90](https://github.com/marcosc90) - -* Ensure auto-rotation works with shrink-on-load and extract (regression in 0.31.0). - [#3352](https://github.com/lovell/sharp/issues/3352) - -* Ensure AVIF output is always 8-bit. - [#3358](https://github.com/lovell/sharp/issues/3358) - -* Ensure greyscale images can be trimmed (regression in 0.31.0). - [#3386](https://github.com/lovell/sharp/issues/3386) - -### v0.31.0 - 5th September 2022 - -* Drop support for Node.js 12, now requires Node.js >= 14.15.0. - -* GIF output now re-uses input palette if possible. Use `reoptimise` option to generate a new palette. - -* Add WebP `minSize` and `mixed` options for greater control over animation frames. - -* Remove previously-deprecated WebP `reductionEffort` and HEIF `speed` options. Use `effort` to control these. - -* The `flip` and `flop` operations will now occur before the `rotate` operation. - -* Improve `normalise` operation with use of histogram. - [#200](https://github.com/lovell/sharp/issues/200) - -* Use combined bounding box of alpha and non-alpha channels for `trim` operation. - [#2166](https://github.com/lovell/sharp/issues/2166) - -* Add Buffer and Stream support to tile-based output. - [#2238](https://github.com/lovell/sharp/issues/2238) - -* Add input `fileSuffix` and output `alias` to `format` information. - [#2642](https://github.com/lovell/sharp/issues/2642) - -* Re-introduce support for greyscale ICC profiles (temporarily removed in 0.30.2). - [#3114](https://github.com/lovell/sharp/issues/3114) - -* Add support for WebP and PackBits `compression` options with TIFF output. - [#3198](https://github.com/lovell/sharp/issues/3198) - -* Ensure OpenSlide and FITS input works with custom libvips. - [#3226](https://github.com/lovell/sharp/issues/3226) - -* Ensure `trim` operation is a no-op when it would reduce an image to nothing. - [#3223](https://github.com/lovell/sharp/issues/3223) - -* Expose `vips_text` to create an image containing rendered text. - [#3252](https://github.com/lovell/sharp/pull/3252) - [@brahima](https://github.com/brahima) - -* Ensure only properties owned by the `withMetadata` EXIF Object are parsed. - [#3292](https://github.com/lovell/sharp/issues/3292) - -* Expand `linear` operation to allow use of per-channel arrays. - [#3303](https://github.com/lovell/sharp/pull/3303) - [@antonmarsden](https://github.com/antonmarsden) - -* Ensure the order of `rotate`, `resize` and `extend` operations is respected where possible. - Emit warnings when previous calls in the same pipeline will be ignored. - [#3319](https://github.com/lovell/sharp/issues/3319) - -* Ensure PNG bitdepth can be set for non-palette output. - [#3322](https://github.com/lovell/sharp/issues/3322) - -* Add trim option to provide a specific background colour. - [#3332](https://github.com/lovell/sharp/pull/3332) - [@mart-jansink](https://github.com/mart-jansink) - -* Ensure resized image is unpremultiplied before composite. - [#3334](https://github.com/lovell/sharp/issues/3334) - -## v0.30 - *dresser* - -Requires libvips v8.12.2 - -### v0.30.7 - 22nd June 2022 - -* Ensure tiled composition always works with outside resizing. - [#3227](https://github.com/lovell/sharp/issues/3227) - -* Allow WebP encoding effort of 0. - [#3261](https://github.com/lovell/sharp/pull/3261) - [@AlexanderTheGrey](https://github.com/AlexanderTheGrey) - -* Prevent upsampling via libwebp. - [#3267](https://github.com/lovell/sharp/pull/3267) - [@blacha](https://github.com/blacha) - -### v0.30.6 - 30th May 2022 - -* Allow values for `limitInputPixels` larger than 32-bit. - [#3238](https://github.com/lovell/sharp/issues/3238) - -* Ensure brew-installed `vips` can be detected (regression in 0.30.5). - [#3239](https://github.com/lovell/sharp/issues/3239) - -### v0.30.5 - 23rd May 2022 - -* Install: pass `PKG_CONFIG_PATH` via env rather than substitution. - [@dwisiswant0](https://github.com/dwisiswant0) - -* Add support for `--libc` flag to improve cross-platform installation. - [#3160](https://github.com/lovell/sharp/pull/3160) - [@joonamo](https://github.com/joonamo) - -* Allow installation of prebuilt libvips binaries from filesystem. - [#3196](https://github.com/lovell/sharp/pull/3196) - [@ankurparihar](https://github.com/ankurparihar) - -* Fix rotate-then-extract for EXIF orientation 2. - [#3218](https://github.com/lovell/sharp/pull/3218) - [@jakob0fischl](https://github.com/jakob0fischl) - -### v0.30.4 - 18th April 2022 - -* Increase control over sensitivity to invalid images via `failOn`, deprecate `failOnError` (equivalent to `failOn: 'warning'`). - -* Ensure `create` input image has correct bit depth and colour space. - [#3139](https://github.com/lovell/sharp/issues/3139) - -* Add support for `TypedArray` input with `byteOffset` and `length`. - [#3146](https://github.com/lovell/sharp/pull/3146) - [@codepage949](https://github.com/codepage949) - -* Improve error message when attempting to render SVG input greater than 32767x32767. - [#3167](https://github.com/lovell/sharp/issues/3167) - -* Add missing file name to 'Input file is missing' error message. - [#3178](https://github.com/lovell/sharp/pull/3178) - [@Brodan](https://github.com/Brodan) - -### v0.30.3 - 14th March 2022 - -* Allow `sharpen` options to be provided more consistently as an Object. - [#2561](https://github.com/lovell/sharp/issues/2561) - -* Expose `x1`, `y2` and `y3` parameters of `sharpen` operation. - [#2935](https://github.com/lovell/sharp/issues/2935) - -* Prevent double unpremultiply with some composite blend modes (regression in 0.30.2). - [#3118](https://github.com/lovell/sharp/issues/3118) - -### v0.30.2 - 2nd March 2022 - -* Improve performance and accuracy when compositing multiple images. - [#2286](https://github.com/lovell/sharp/issues/2286) - -* Expand pkgconfig search path for wider BSD support. - [#3106](https://github.com/lovell/sharp/issues/3106) - -* Ensure Windows C++ runtime is linked statically (regression in 0.30.0). - [#3110](https://github.com/lovell/sharp/pull/3110) - [@kleisauke](https://github.com/kleisauke) - -* Temporarily ignore greyscale ICC profiles to workaround lcms bug. - [#3112](https://github.com/lovell/sharp/issues/3112) - -### v0.30.1 - 9th February 2022 - -* Allow use of `toBuffer` and `toFile` on the same instance. - [#3044](https://github.com/lovell/sharp/issues/3044) - -* Skip shrink-on-load for known libjpeg rounding errors. - [#3066](https://github.com/lovell/sharp/issues/3066) - [@kleisauke](https://github.com/kleisauke) - -* Ensure withoutReduction does not interfere with contain/crop/embed. - [#3081](https://github.com/lovell/sharp/pull/3081) - [@kleisauke](https://github.com/kleisauke) - -* Ensure affine interpolator is correctly finalised. - [#3083](https://github.com/lovell/sharp/pull/3083) - [@kleisauke](https://github.com/kleisauke) - -### v0.30.0 - 1st February 2022 - -* Add support for GIF output to prebuilt binaries. - -* Reduce minimum Linux ARM64v8 glibc requirement to 2.17. - -* Verify prebuilt binaries with a Subresource Integrity check. - -* Standardise WebP `effort` option name, deprecate `reductionEffort`. - -* Standardise HEIF `effort` option name, deprecate `speed`. - -* Add support for IIIF v3 tile-based output. - -* Expose control over CPU effort for palette-based PNG output. - [#2541](https://github.com/lovell/sharp/issues/2541) - -* Improve animated (multi-page) image resize and extract. - [#2789](https://github.com/lovell/sharp/pull/2789) - [@kleisauke](https://github.com/kleisauke) - -* Expose platform and architecture of vendored binaries as `sharp.vendor`. - [#2928](https://github.com/lovell/sharp/issues/2928) - -* Ensure 16-bit PNG output uses correct bitdepth. - [#2958](https://github.com/lovell/sharp/pull/2958) - [@gforge](https://github.com/gforge) - -* Properly emit close events for duplex streams. - [#2976](https://github.com/lovell/sharp/pull/2976) - [@driannaude](https://github.com/driannaude) - -* Expose `unlimited` option for SVG and PNG input, switches off safety features. - [#2984](https://github.com/lovell/sharp/issues/2984) - -* Add `withoutReduction` option to resize operation. - [#3006](https://github.com/lovell/sharp/pull/3006) - [@christopherbradleybanks](https://github.com/christopherbradleybanks) - -* Add `resolutionUnit` as `tiff` option and expose in metadata. - [#3023](https://github.com/lovell/sharp/pull/3023) - [@ompal-sisodiya](https://github.com/ompal-sisodiya) - -* Ensure rotate-then-extract works with EXIF mirroring. - [#3024](https://github.com/lovell/sharp/issues/3024) - -## v0.29 - *circle* - -Requires libvips v8.11.3 - -### v0.29.3 - 14th November 2021 - -* Ensure correct dimensions when containing image resized to 1px. - [#2951](https://github.com/lovell/sharp/issues/2951) - -* Impute TIFF `xres`/`yres` from `density` provided to `withMetadata`. - [#2952](https://github.com/lovell/sharp/pull/2952) - [@mbklein](https://github.com/mbklein) - -### v0.29.2 - 21st October 2021 - -* Add `timeout` function to limit processing time. - -* Ensure `sharp.versions` is populated from vendored libvips. - -* Remove animation properties from single page images. - [#2890](https://github.com/lovell/sharp/issues/2890) - -* Allow use of 'tif' to select TIFF output. - [#2893](https://github.com/lovell/sharp/pull/2893) - [@erf](https://github.com/erf) - -* Improve error message on Windows for version conflict. - [#2918](https://github.com/lovell/sharp/pull/2918) - [@dkrnl](https://github.com/dkrnl) - -* Throw error rather than exit when invalid binaries detected. - [#2931](https://github.com/lovell/sharp/issues/2931) - -### v0.29.1 - 7th September 2021 - -* Add `lightness` option to `modulate` operation. - [#2846](https://github.com/lovell/sharp/pull/2846) - -* Ensure correct PNG bitdepth is set based on number of colours. - [#2855](https://github.com/lovell/sharp/issues/2855) - -* Ensure background is always premultiplied when compositing. - [#2858](https://github.com/lovell/sharp/issues/2858) - -* Ensure images with P3 profiles retain full gamut. - [#2862](https://github.com/lovell/sharp/issues/2862) - -* Add support for libvips compiled with OpenJPEG. - [#2868](https://github.com/lovell/sharp/pull/2868) - -* Remove unsupported animation properties from AVIF output. - [#2870](https://github.com/lovell/sharp/issues/2870) - -* Resolve paths before comparing input/output filenames. - [#2878](https://github.com/lovell/sharp/pull/2878) - [@rexxars](https://github.com/rexxars) - -* Allow use of speed 9 (fastest) for HEIF encoding. - [#2879](https://github.com/lovell/sharp/pull/2879) - [@rexxars](https://github.com/rexxars) - -### v0.29.0 - 17th August 2021 - -* Drop support for Node.js 10, now requires Node.js >= 12.13.0. - -* Add `background` property to PNG and GIF image metadata. - -* Add `compression` property to HEIF image metadata. - [#2504](https://github.com/lovell/sharp/issues/2504) - -* AVIF encoding now defaults to `4:4:4` chroma subsampling. - [#2562](https://github.com/lovell/sharp/issues/2562) - -* Allow multiple platform-arch binaries in same `node_modules` installation tree. - [#2575](https://github.com/lovell/sharp/issues/2575) - -* Default to single-channel `b-w` space when `extractChannel` is used. - [#2658](https://github.com/lovell/sharp/issues/2658) - -* Allow installation directory to contain spaces (regression in v0.26.0). - [#2777](https://github.com/lovell/sharp/issues/2777) - -* Add `pipelineColourspace` operator to set the processing space. - [#2704](https://github.com/lovell/sharp/pull/2704) - [@Daiz](https://github.com/Daiz) - -* Allow bit depth to be set when using raw input and output. - [#2762](https://github.com/lovell/sharp/pull/2762) - [@mart-jansink](https://github.com/mart-jansink) - -* Allow `negate` to act only on non-alpha channels. - [#2808](https://github.com/lovell/sharp/pull/2808) - [@rexxars](https://github.com/rexxars) - -## v0.28 - *bijou* - -Requires libvips v8.10.6 - -### v0.28.3 - 24th May 2021 - -* Ensure presence of libvips, vendored or global, before invoking node-gyp. - -* Skip shrink-on-load for multi-page WebP. - [#2714](https://github.com/lovell/sharp/issues/2714) - -* Add contrast limiting adaptive histogram equalization (CLAHE) operator. - [#2726](https://github.com/lovell/sharp/pull/2726) - [@baparham](https://github.com/baparham) - -### v0.28.2 - 10th May 2021 - -* Allow `withMetadata` to set `density`. - [#967](https://github.com/lovell/sharp/issues/967) - -* Skip shrink-on-load where one dimension <4px. - [#2653](https://github.com/lovell/sharp/issues/2653) - -* Allow escaped proxy credentials. - [#2664](https://github.com/lovell/sharp/pull/2664) - [@msalettes](https://github.com/msalettes) - -* Add `premultiplied` flag for raw pixel data input. - [#2685](https://github.com/lovell/sharp/pull/2685) - [@mnutt](https://github.com/mnutt) - -* Detect empty input and throw a helpful error. - [#2687](https://github.com/lovell/sharp/pull/2687) - [@JakobJingleheimer](https://github.com/JakobJingleheimer) - -* Add install-time flag to skip version compatibility checks. - [#2692](https://github.com/lovell/sharp/pull/2692) - [@xemle](https://github.com/xemle) - -### v0.28.1 - 5th April 2021 - -* Ensure all installation errors are logged with a more obvious prefix. - -* Allow `withMetadata` to set and update EXIF metadata. - [#650](https://github.com/lovell/sharp/issues/650) - -* Add support for OME-TIFF Sub Image File Directories (subIFD). - [#2557](https://github.com/lovell/sharp/issues/2557) - -* Allow `ensureAlpha` to set the alpha transparency level. - [#2634](https://github.com/lovell/sharp/issues/2634) - -### v0.28.0 - 29th March 2021 - -* Prebuilt binaries now include mozjpeg and libimagequant (BSD 2-Clause). - -* Prebuilt binaries limit AVIF support to the most common 8-bit depth. - -* Add `mozjpeg` option to `jpeg` method, sets mozjpeg defaults. - -* Reduce the default PNG `compressionLevel` to the more commonly used 6. - -* Reduce concurrency on glibc-based Linux when using the default memory allocator to help prevent fragmentation. - -* Default missing edge properties of extend operation to zero. - [#2578](https://github.com/lovell/sharp/issues/2578) - -* Ensure composite does not clip top and left offsets. - [#2594](https://github.com/lovell/sharp/pull/2594) - [@SHG42](https://github.com/SHG42) - -* Improve error handling of network failure at install time. - [#2608](https://github.com/lovell/sharp/pull/2608) - [@abradley](https://github.com/abradley) - -* Ensure `@id` attribute can be set for IIIF tile-based output. - [#2612](https://github.com/lovell/sharp/issues/2612) - [@edsilv](https://github.com/edsilv) - -* Ensure composite replicates the correct number of tiles for centred gravities. - [#2626](https://github.com/lovell/sharp/issues/2626) - -## v0.27 - *avif* - -Requires libvips v8.10.5 - -### v0.27.2 - 22nd February 2021 - -* macOS: Prevent use of globally-installed ARM64 libvips with Rosetta x64 emulation. - [#2460](https://github.com/lovell/sharp/issues/2460) - -* Linux (musl): Prevent use of prebuilt linuxmusl-x64 binaries with musl >= 1.2.0. - [#2570](https://github.com/lovell/sharp/issues/2570) - -* Improve 16-bit grey+alpha support by using libvips' `has_alpha` detection. - [#2569](https://github.com/lovell/sharp/issues/2569) - -* Allow the use of non lower case extensions with `toFormat`. - [#2581](https://github.com/lovell/sharp/pull/2581) - [@florian-busch](https://github.com/florian-busch) - -* Allow use of `recomb` operation with single channel input. - [#2584](https://github.com/lovell/sharp/issues/2584) - -### v0.27.1 - 27th January 2021 - -* Ensure TIFF is cast when using float predictor. - [#2502](https://github.com/lovell/sharp/pull/2502) - [@randyridge](https://github.com/randyridge) - -* Add support for Uint8Array and Uint8ClampedArray input. - [#2511](https://github.com/lovell/sharp/pull/2511) - [@leon](https://github.com/leon) - -* Revert: ensure all platforms use fontconfig for font rendering. - [#2515](https://github.com/lovell/sharp/issues/2515) - -* Expose libvips gaussnoise operation to allow creation of Gaussian noise. - [#2527](https://github.com/lovell/sharp/pull/2527) - [@alza54](https://github.com/alza54) - -### v0.27.0 - 22nd December 2020 - -* Add support for AVIF to prebuilt binaries. - -* Remove experimental status from `heif` output, defaults are now AVIF-centric. - -* Allow negative top/left offsets for composite operation. - [#2391](https://github.com/lovell/sharp/pull/2391) - [@CurosMJ](https://github.com/CurosMJ) - -* Ensure all platforms use fontconfig for font rendering. - [#2399](https://github.com/lovell/sharp/issues/2399) - -## v0.26 - *zoom* - -Requires libvips v8.10.0 - -### v0.26.3 - 16th November 2020 - -* Expose libvips' affine operation. - [#2336](https://github.com/lovell/sharp/pull/2336) - [@guillevc](https://github.com/guillevc) - -* Fallback to tar.gz for prebuilt libvips when Brotli not available. - [#2412](https://github.com/lovell/sharp/pull/2412) - [@ascorbic](https://github.com/ascorbic) - -### v0.26.2 - 14th October 2020 - -* Add support for EXR input. Requires libvips compiled with OpenEXR. - [#698](https://github.com/lovell/sharp/issues/698) - -* Ensure support for yarn v2. - [#2379](https://github.com/lovell/sharp/pull/2379) - [@jalovatt](https://github.com/jalovatt) - -* Add centre/center option to tile-based output. - [#2397](https://github.com/lovell/sharp/pull/2397) - [@beig](https://github.com/beig) - -### v0.26.1 - 20th September 2020 - -* Ensure correct pageHeight when verifying multi-page image dimensions. - [#2343](https://github.com/lovell/sharp/pull/2343) - [@derom](https://github.com/derom) - -* Allow input density range up to 100000 DPI. - [#2348](https://github.com/lovell/sharp/pull/2348) - [@stefanprobst](https://github.com/stefanprobst) - -* Ensure animation-related properties can be set for Stream-based input. - [#2369](https://github.com/lovell/sharp/pull/2369) - [@AcrylicShrimp](https://github.com/AcrylicShrimp) - -* Ensure `stats` can be calculated for 1x1 input. - [#2372](https://github.com/lovell/sharp/issues/2372) - -* Ensure animated GIF output is optimised. - [#2376](https://github.com/lovell/sharp/issues/2376) - -### v0.26.0 - 25th August 2020 - -* Prebuilt libvips binaries are now statically-linked and Brotli-compressed, requiring Node.js 10.16.0+. - -* TIFF output `squash` is replaced by `bitdepth` to reduce to 1, 2 or 4 bit. - -* JPEG output `quality` >= 90 no longer automatically sets `chromaSubsampling` to `4:4:4`. - -* Add most `dominant` colour to image `stats`. - [#640](https://github.com/lovell/sharp/issues/640) - -* Add support for animated GIF (requires \*magick) and WebP output. - [#2012](https://github.com/lovell/sharp/pull/2012) - [@deftomat](https://github.com/deftomat) - -* Add support for libvips ImageMagick v7 loaders. - [#2258](https://github.com/lovell/sharp/pull/2258) - [@vouillon](https://github.com/vouillon) - -* Allow multi-page input via \*magick. - [#2259](https://github.com/lovell/sharp/pull/2259) - [@vouillon](https://github.com/vouillon) - -* Add support to `withMetadata` for custom ICC profile. - [#2271](https://github.com/lovell/sharp/pull/2271) - [@roborourke](https://github.com/roborourke) - -* Ensure prebuilt binaries for ARM default to v7 when using Electron. - [#2292](https://github.com/lovell/sharp/pull/2292) - [@diegodev3](https://github.com/diegodev3) - -## v0.25 - *yield* - -Requires libvips v8.9.1 - -### v0.25.4 - 12th June 2020 - -* Allow libvips binary location override where version is appended. - [#2217](https://github.com/lovell/sharp/pull/2217) - [@malice00](https://github.com/malice00) - -* Enable PNG palette when setting quality, colours, colors or dither. - [#2226](https://github.com/lovell/sharp/pull/2226) - [@romaleev](https://github.com/romaleev) - -* Add `level` constructor option to use a specific level of a multi-level image. - Expose `levels` metadata for multi-level images. - [#2222](https://github.com/lovell/sharp/issues/2222) - -* Add support for named `alpha` channel to `extractChannel` operation. - [#2138](https://github.com/lovell/sharp/issues/2138) - -* Add experimental `sharpness` calculation to `stats()` response. - [#2251](https://github.com/lovell/sharp/issues/2251) - -* Emit `warning` event for non-critical processing problems. - [#2032](https://github.com/lovell/sharp/issues/2032) - -### v0.25.3 - 17th May 2020 - -* Ensure libvips is initialised only once, improves worker thread safety. - [#2143](https://github.com/lovell/sharp/issues/2143) - -* Ensure npm platform flag is respected when copying DLLs. - [#2188](https://github.com/lovell/sharp/pull/2188) - [@dimadeveatii](https://github.com/dimadeveatii) - -* Allow SVG input with large inline images to be parsed. - [#2195](https://github.com/lovell/sharp/issues/2195) - -### v0.25.2 - 20th March 2020 - -* Provide prebuilt binaries for Linux ARM64v8. - -* Add IIIF layout support to tile-based output. - [#2098](https://github.com/lovell/sharp/pull/2098) - [@edsilv](https://github.com/edsilv) - -* Ensure input options are consistently and correctly detected. - [#2118](https://github.com/lovell/sharp/issues/2118) - -* Ensure N-API prebuilt binaries work on RHEL7 and its derivatives. - [#2119](https://github.com/lovell/sharp/issues/2119) - -* Ensure AsyncWorker options are persisted. - [#2130](https://github.com/lovell/sharp/issues/2130) - -### v0.25.1 - 7th March 2020 - -* Ensure prebuilt binaries are fetched based on N-API version. - [#2117](https://github.com/lovell/sharp/issues/2117) - -### v0.25.0 - 7th March 2020 - -* Remove `limitInputPixels` and `sequentialRead` previously deprecated in v0.24.0. - -* Migrate internals to N-API. - [#1282](https://github.com/lovell/sharp/issues/1282) - -* Add support for 32-bit Windows. - [#2088](https://github.com/lovell/sharp/issues/2088) - -* Ensure correct ordering of rotate-then-trim operations. - [#2087](https://github.com/lovell/sharp/issues/2087) - -* Ensure composite accepts `limitInputPixels` and `sequentialRead` input options. - [#2099](https://github.com/lovell/sharp/issues/2099) - -## v0.24 - "*wit*" - -Requires libvips v8.9.0. - -### v0.24.1 - 15th February 2020 - -* Prevent use of sequentialRead for EXIF-based rotate operation. - [#2042](https://github.com/lovell/sharp/issues/2042) - -* Ensure RGBA LZW TIFF returns correct channel count. - [#2064](https://github.com/lovell/sharp/issues/2064) - -### v0.24.0 - 16th January 2020 - -* Drop support for Node.js 8. - [#1910](https://github.com/lovell/sharp/issues/1910) - -* Drop support for undefined input where options also provided. - [#1768](https://github.com/lovell/sharp/issues/1768) - -* Move `limitInputPixels` and `sequentialRead` to input options, deprecating functions of the same name. - -* Expose `delay` and `loop` metadata for animated images. - [#1905](https://github.com/lovell/sharp/issues/1905) - -* Ensure correct colour output for 16-bit, 2-channel PNG input with ICC profile. - [#2013](https://github.com/lovell/sharp/issues/2013) - -* Prevent use of sequentialRead for rotate operations. - [#2016](https://github.com/lovell/sharp/issues/2016) - -* Correctly bind max width and height values when using withoutEnlargement. - [#2024](https://github.com/lovell/sharp/pull/2024) - [@BrychanOdlum](https://github.com/BrychanOdlum) - -* Add support for input with 16-bit RGB profile. - [#2037](https://github.com/lovell/sharp/issues/2037) - -## v0.23 - "*vision*" - -Requires libvips v8.8.1. - -### v0.23.4 - 5th December 2019 - -* Handle zero-length Buffer objects when using Node.js v13.2.0+. - -* Expose raw TIFFTAG_PHOTOSHOP metadata. - [#1600](https://github.com/lovell/sharp/issues/1600) - -* Improve thread safety by using copy-on-write when updating metadata. - [#1986](https://github.com/lovell/sharp/issues/1986) - -### v0.23.3 - 17th November 2019 - -* Ensure `trim` operation supports images contained in the alpha channel. - [#1597](https://github.com/lovell/sharp/issues/1597) - -* Ensure tile `overlap` option works as expected. - [#1921](https://github.com/lovell/sharp/pull/1921) - [@rustyguts](https://github.com/rustyguts) - -* Allow compilation on FreeBSD and variants (broken since v0.23.0) - [#1952](https://github.com/lovell/sharp/pull/1952) - [@pouya-eghbali](https://github.com/pouya-eghbali) - -* Ensure `modulate` and other colour-based operations can co-exist. - [#1958](https://github.com/lovell/sharp/issues/1958) - -### v0.23.2 - 28th October 2019 - -* Add `background` option to tile output operation. - [#1924](https://github.com/lovell/sharp/pull/1924) - [@neave](https://github.com/neave) - -* Add support for Node.js 13. - [#1932](https://github.com/lovell/sharp/pull/1932) - [@MayhemYDG](https://github.com/MayhemYDG) - -### v0.23.1 - 26th September 2019 - -* Ensure `sharp.format.vips` is present and correct (filesystem only). - [#1813](https://github.com/lovell/sharp/issues/1813) - -* Ensure invalid `width` and `height` provided as options to `resize` throw. - [#1817](https://github.com/lovell/sharp/issues/1817) - -* Allow use of 'heic' and 'heif' identifiers with `toFormat`. - [#1834](https://github.com/lovell/sharp/pull/1834) - [@jaubourg](https://github.com/jaubourg) - -* Add `premultiplied` option to `composite` operation. - [#1835](https://github.com/lovell/sharp/pull/1835) - [@Andargor](https://github.com/Andargor) - -* Allow instance reuse with differing `toBuffer` options. - [#1860](https://github.com/lovell/sharp/pull/1860) - [@RaboliotTheGrey](https://github.com/RaboliotTheGrey) - -* Ensure image is at least 3x3 pixels before attempting trim operation. - -### v0.23.0 - 29th July 2019 - -* Remove `overlayWith` previously deprecated in v0.22.0. - -* Add experimental support for HEIF images. Requires libvips compiled with libheif. - [#1105](https://github.com/lovell/sharp/issues/1105) - -* Expose libwebp `smartSubsample` and `reductionEffort` options. - [#1545](https://github.com/lovell/sharp/issues/1545) - -* Add experimental support for Worker Threads. - [#1558](https://github.com/lovell/sharp/issues/1558) - -* Use libvips' built-in CMYK and sRGB profiles when required. - [#1619](https://github.com/lovell/sharp/issues/1619) - -* Drop support for Node.js versions 6 and 11. - [#1674](https://github.com/lovell/sharp/issues/1674) - -* Expose `skipBlanks` option for tile-based output. - [#1687](https://github.com/lovell/sharp/pull/1687) - [@RaboliotTheGrey](https://github.com/RaboliotTheGrey) - -* Allow use of `failOnError` option with Stream-based input. - [#1691](https://github.com/lovell/sharp/issues/1691) - -* Fix rotate/extract ordering for non-90 angles. - [#1755](https://github.com/lovell/sharp/pull/1755) - [@iovdin](https://github.com/iovdin) - -## v0.22 - "*uptake*" - -Requires libvips v8.7.4. - -### v0.22.1 - 25th April 2019 - -* Add `modulate` operation for brightness, saturation and hue. - [#1601](https://github.com/lovell/sharp/pull/1601) - [@Goues](https://github.com/Goues) - -* Improve help messaging should `require("sharp")` fail. - [#1638](https://github.com/lovell/sharp/pull/1638) - [@sidharthachatterjee](https://github.com/sidharthachatterjee) - -* Add support for Node 12. - [#1668](https://github.com/lovell/sharp/issues/1668) - -### v0.22.0 - 18th March 2019 - -* Remove functions previously deprecated in v0.21.0: - `background`, `crop`, `embed`, `ignoreAspectRatio`, `max`, `min` and `withoutEnlargement`. - -* Add `composite` operation supporting multiple images and blend modes; deprecate `overlayWith`. - [#728](https://github.com/lovell/sharp/issues/728) - -* Add support for `pages` input option for multi-page input. - [#1566](https://github.com/lovell/sharp/issues/1566) - -* Allow Stream-based input of raw pixel data. - [#1579](https://github.com/lovell/sharp/issues/1579) - -* Add support for `page` input option to GIF and PDF. - [#1595](https://github.com/lovell/sharp/pull/1595) - [@ramiel](https://github.com/ramiel) - -## v0.21 - "*teeth*" - -Requires libvips v8.7.0. - -### v0.21.3 - 19th January 2019 - -* Input image decoding now fails fast, set `failOnError` to change this behaviour. - -* Failed filesystem-based input now separates missing file and invalid format errors. - [#1542](https://github.com/lovell/sharp/issues/1542) - -### v0.21.2 - 13th January 2019 - -* Ensure all metadata is removed from PNG output unless `withMetadata` used. - -* Ensure shortest edge is at least one pixel after resizing. - [#1003](https://github.com/lovell/sharp/issues/1003) - -* Add `ensureAlpha` operation to add an alpha channel, if missing. - [#1153](https://github.com/lovell/sharp/issues/1153) - -* Expose `pages` and `pageHeight` metadata for multi-page input images. - [#1205](https://github.com/lovell/sharp/issues/1205) - -* Expose PNG output options requiring libimagequant. - [#1484](https://github.com/lovell/sharp/issues/1484) - -* Expose underlying error message for invalid input. - [#1505](https://github.com/lovell/sharp/issues/1505) - -* Prevent mutatation of options passed to `jpeg`. - [#1516](https://github.com/lovell/sharp/issues/1516) - -* Ensure forced output format applied correctly when output chaining. - [#1528](https://github.com/lovell/sharp/issues/1528) - -### v0.21.1 - 7th December 2018 - -* Install: support `sharp_dist_base_url` npm config, like existing `SHARP_DIST_BASE_URL`. - [#1422](https://github.com/lovell/sharp/pull/1422) - [@SethWen](https://github.com/SethWen) - -* Ensure `channel` metadata is correct for raw, greyscale output. - [#1425](https://github.com/lovell/sharp/issues/1425) - -* Add support for the "mitchell" kernel for image reductions. - [#1438](https://github.com/lovell/sharp/pull/1438) - [@Daiz](https://github.com/Daiz) - -* Allow separate parameters for gamma encoding and decoding. - [#1439](https://github.com/lovell/sharp/pull/1439) - [@Daiz](https://github.com/Daiz) - -* Build prototype with `Object.assign` to allow minification. - [#1475](https://github.com/lovell/sharp/pull/1475) - [@jaubourg](https://github.com/jaubourg) - -* Expose libvips' recombination matrix operation. - [#1477](https://github.com/lovell/sharp/pull/1477) - [@fromkeith](https://github.com/fromkeith) - -* Expose libvips' pyramid/tile options for TIFF output. - [#1483](https://github.com/lovell/sharp/pull/1483) - [@mbklein](https://github.com/mbklein) - -### v0.21.0 - 4th October 2018 - -* Deprecate the following resize-related functions: - `crop`, `embed`, `ignoreAspectRatio`, `max`, `min` and `withoutEnlargement`. - Access to these is now via options passed to the `resize` function. - For example: - `embed('north')` is now `resize(width, height, { fit: 'contain', position: 'north' })`, - `crop('attention')` is now `resize(width, height, { fit: 'cover', position: 'attention' })`, - `max().withoutEnlargement()` is now `resize(width, height, { fit: 'inside', withoutEnlargement: true })`. - [#1135](https://github.com/lovell/sharp/issues/1135) - -* Deprecate the `background` function. - Per-operation `background` options added to `resize`, `extend` and `flatten` operations. - [#1392](https://github.com/lovell/sharp/issues/1392) - -* Add `size` to `metadata` response (Stream and Buffer input only). - [#695](https://github.com/lovell/sharp/issues/695) - -* Switch from custom trim operation to `vips_find_trim`. - [#914](https://github.com/lovell/sharp/issues/914) - -* Add `chromaSubsampling` and `isProgressive` properties to `metadata` response. - [#1186](https://github.com/lovell/sharp/issues/1186) - -* Drop Node 4 support. - [#1212](https://github.com/lovell/sharp/issues/1212) - -* Enable SIMD convolution by default. - [#1213](https://github.com/lovell/sharp/issues/1213) - -* Add experimental prebuilt binaries for musl-based Linux. - [#1379](https://github.com/lovell/sharp/issues/1379) - -* Add support for arbitrary rotation angle via vips_rotate. - [#1385](https://github.com/lovell/sharp/pull/1385) - [@freezy](https://github.com/freezy) - -## v0.20 - "*prebuild*" - -Requires libvips v8.6.1. - -### v0.20.8 - 5th September 2018 - -* Avoid race conditions when creating directories during installation. - [#1358](https://github.com/lovell/sharp/pull/1358) - [@ajhool](https://github.com/ajhool) - -* Accept floating point values for input density parameter. - [#1362](https://github.com/lovell/sharp/pull/1362) - [@aeirola](https://github.com/aeirola) - -### v0.20.7 - 21st August 2018 - -* Use copy+unlink if rename operation fails during installation. - [#1345](https://github.com/lovell/sharp/issues/1345) - -### v0.20.6 - 20th August 2018 - -* Add removeAlpha operation to remove alpha channel, if any. - [#1248](https://github.com/lovell/sharp/issues/1248) - -* Expose mozjpeg quant_table flag. - [#1285](https://github.com/lovell/sharp/pull/1285) - [@rexxars](https://github.com/rexxars) - -* Allow full WebP alphaQuality range of 0-100. - [#1290](https://github.com/lovell/sharp/pull/1290) - [@sylvaindumont](https://github.com/sylvaindumont) - -* Cache libvips binaries to reduce re-install time. - [#1301](https://github.com/lovell/sharp/issues/1301) - -* Ensure vendor platform mismatch throws error at install time. - [#1303](https://github.com/lovell/sharp/issues/1303) - -* Improve install time error messages for FreeBSD users. - [#1310](https://github.com/lovell/sharp/issues/1310) - -* Ensure extractChannel works with 16-bit images. - [#1330](https://github.com/lovell/sharp/issues/1330) - -* Expose depth option for tile-based output. - [#1342](https://github.com/lovell/sharp/pull/1342) - [@alundavies](https://github.com/alundavies) - -* Add experimental entropy field to stats response. - -### v0.20.5 - 27th June 2018 - -* Expose libjpeg optimize_coding flag. - [#1265](https://github.com/lovell/sharp/pull/1265) - [@tomlokhorst](https://github.com/tomlokhorst) - -### v0.20.4 - 20th June 2018 - -* Prevent possible rounding error when using shrink-on-load and 90/270 degree rotation. - [#1241](https://github.com/lovell/sharp/issues/1241) - [@anahit42](https://github.com/anahit42) - -* Ensure extractChannel sets correct single-channel colour space interpretation. - [#1257](https://github.com/lovell/sharp/issues/1257) - [@jeremychone](https://github.com/jeremychone) - -### v0.20.3 - 29th May 2018 - -* Fix tint operation by ensuring LAB interpretation and allowing negative values. - [#1235](https://github.com/lovell/sharp/issues/1235) - [@wezside](https://github.com/wezside) - -### v0.20.2 - 28th April 2018 - -* Add tint operation to set image chroma. - [#825](https://github.com/lovell/sharp/pull/825) - [@rikh42](https://github.com/rikh42) - -* Add environment variable to ignore globally-installed libvips. - [#1165](https://github.com/lovell/sharp/pull/1165) - [@oncletom](https://github.com/oncletom) - -* Add support for page selection with multi-page input (GIF/TIFF). - [#1204](https://github.com/lovell/sharp/pull/1204) - [@woolite64](https://github.com/woolite64) - -* Add support for Group4 (CCITTFAX4) compression with TIFF output. - [#1208](https://github.com/lovell/sharp/pull/1208) - [@woolite64](https://github.com/woolite64) - -### v0.20.1 - 17th March 2018 - -* Improve installation experience when a globally-installed libvips below the minimum required version is found. - [#1148](https://github.com/lovell/sharp/issues/1148) - -* Prevent smartcrop error when cumulative rounding is below target size. - [#1154](https://github.com/lovell/sharp/issues/1154) - [@ralrom](https://github.com/ralrom) - -* Expose libvips' median filter operation. - [#1161](https://github.com/lovell/sharp/pull/1161) - [@BiancoA](https://github.com/BiancoA) - -### v0.20.0 - 5th March 2018 - -* Add support for prebuilt sharp binaries on common platforms. - [#186](https://github.com/lovell/sharp/issues/186) - -## v0.19 - "*suit*" - -Requires libvips v8.6.1. - -### v0.19.1 - 24th February 2018 - -* Expose libvips' linear transform feature. - [#1024](https://github.com/lovell/sharp/pull/1024) - [@3epnm](https://github.com/3epnm) - -* Expose angle option for tile-based output. - [#1121](https://github.com/lovell/sharp/pull/1121) - [@BiancoA](https://github.com/BiancoA) - -* Prevent crop operation when image already at or below target dimensions. - [#1134](https://github.com/lovell/sharp/issues/1134) - [@pieh](https://github.com/pieh) - -### v0.19.0 - 11th January 2018 - -* Expose offset coordinates of strategy-based crop. - [#868](https://github.com/lovell/sharp/issues/868) - [@mirohristov-com](https://github.com/mirohristov-com) - -* PNG output now defaults to adaptiveFiltering=false, compressionLevel=9 - [#872](https://github.com/lovell/sharp/issues/872) - [@wmertens](https://github.com/wmertens) - -* Add stats feature for pixel-derived image statistics. - [#915](https://github.com/lovell/sharp/pull/915) - [@rnanwani](https://github.com/rnanwani) - -* Add failOnError option to fail-fast on bad input image data. - [#976](https://github.com/lovell/sharp/pull/976) - [@mceachen](https://github.com/mceachen) - -* Resize: switch to libvips' implementation, make fastShrinkOnLoad optional, remove interpolator and centreSampling options. - [#977](https://github.com/lovell/sharp/pull/977) - [@jardakotesovec](https://github.com/jardakotesovec) - -* Attach finish event listener to a clone only for Stream-based input. - [#995](https://github.com/lovell/sharp/issues/995) - [@whmountains](https://github.com/whmountains) - -* Add tilecache before smartcrop to avoid over-computation of previous operations. - [#1028](https://github.com/lovell/sharp/issues/1028) - [@coffeebite](https://github.com/coffeebite) - -* Prevent toFile extension taking precedence over requested format. - [#1037](https://github.com/lovell/sharp/issues/1037) - [@tomgallagher](https://github.com/tomgallagher) - -* Add support for gravity option to existing embed feature. - [#1038](https://github.com/lovell/sharp/pull/1038) - [@AzureByte](https://github.com/AzureByte) - -* Expose IPTC and XMP metadata when available. - [#1079](https://github.com/lovell/sharp/pull/1079) - [@oaleynik](https://github.com/oaleynik) - -* TIFF output: switch default predictor from 'none' to 'horizontal' to match libvips' behaviour. - -## v0.18 - "*ridge*" - -Requires libvips v8.5.5. - -### v0.18.4 - 18th September 2017 - -* Ensure input Buffer really is marked as Persistent, prevents mark-sweep GC. - [#950](https://github.com/lovell/sharp/issues/950) - [@lfdoherty](https://github.com/lfdoherty) - -### v0.18.3 - 13th September 2017 - -* Skip shrink-on-load when trimming. - [#888](https://github.com/lovell/sharp/pull/888) - [@kleisauke](https://github.com/kleisauke) - -* Migrate from got to simple-get for basic auth support. - [#945](https://github.com/lovell/sharp/pull/945) - [@pbomb](https://github.com/pbomb) - -### v0.18.2 - 1st July 2017 - -* Expose libvips' xres and yres properties for TIFF output. - [#828](https://github.com/lovell/sharp/pull/828) - [@YvesBos](https://github.com/YvesBos) - -* Ensure flip and flop operations work with auto-rotate. - [#837](https://github.com/lovell/sharp/issues/837) - [@rexxars](https://github.com/rexxars) - -* Allow binary download URL override via SHARP_DIST_BASE_URL env variable. - [#841](https://github.com/lovell/sharp/issues/841) - -* Add support for Solus Linux. - [#857](https://github.com/lovell/sharp/pull/857) - [@ekremkaraca](https://github.com/ekremkaraca) - -### v0.18.1 - 30th May 2017 - -* Remove regression from #781 that could cause incorrect shrink calculation. - [#831](https://github.com/lovell/sharp/issues/831) - [@suprMax](https://github.com/suprMax) - -### v0.18.0 - 30th May 2017 - -* Remove the previously-deprecated output format "option" functions: - quality, progressive, compressionLevel, withoutAdaptiveFiltering, - withoutChromaSubsampling, trellisQuantisation, trellisQuantization, - overshootDeringing, optimiseScans and optimizeScans. - -* Ensure maximum output dimensions are based on the format to be used. - [#176](https://github.com/lovell/sharp/issues/176) - [@stephanebachelier](https://github.com/stephanebachelier) - -* Avoid costly (un)premultiply when using overlayWith without alpha channel. - [#573](https://github.com/lovell/sharp/issues/573) - [@strarsis](https://github.com/strarsis) - -* Include pixel depth (e.g. "uchar") when reading metadata. - [#577](https://github.com/lovell/sharp/issues/577) - [@moedusa](https://github.com/moedusa) - -* Add support for Buffer and Stream-based TIFF output. - [#587](https://github.com/lovell/sharp/issues/587) - [@strarsis](https://github.com/strarsis) - -* Expose warnings from libvips via NODE_DEBUG=sharp environment variable. - [#607](https://github.com/lovell/sharp/issues/607) - [@puzrin](https://github.com/puzrin) - -* Switch to the libvips implementation of "attention" and "entropy" crop strategies. - [#727](https://github.com/lovell/sharp/issues/727) - -* Improve performance and accuracy of nearest neighbour integral upsampling. - [#752](https://github.com/lovell/sharp/issues/752) - [@MrIbby](https://github.com/MrIbby) - -* Constructor single argument API: allow plain object, reject null/undefined. - [#768](https://github.com/lovell/sharp/issues/768) - [@kub1x](https://github.com/kub1x) - -* Ensure ARM64 pre-built binaries use correct C++11 ABI version. - [#772](https://github.com/lovell/sharp/issues/772) - [@ajiratech2](https://github.com/ajiratech2) - -* Prevent aliasing by using dynamic values for shrink(-on-load). - [#781](https://github.com/lovell/sharp/issues/781) - [@kleisauke](https://github.com/kleisauke) - -* Expose libvips' "squash" parameter to enable 1-bit TIFF output. - [#783](https://github.com/lovell/sharp/pull/783) - [@YvesBos](https://github.com/YvesBos) - -* Add support for rotation using any multiple of +/-90 degrees. - [#791](https://github.com/lovell/sharp/pull/791) - [@ncoden](https://github.com/ncoden) - -* Add "jpg" alias to toFormat as shortened form of "jpeg". - [#814](https://github.com/lovell/sharp/pull/814) - [@jingsam](https://github.com/jingsam) - -## v0.17 - "*quill*" - -Requires libvips v8.4.2. - -### v0.17.3 - 1st April 2017 - -* Allow toBuffer to optionally resolve a Promise with both info and data. - [#143](https://github.com/lovell/sharp/issues/143) - [@salzhrani](https://github.com/salzhrani) - -* Create blank image of given width, height, channels and background. - [#470](https://github.com/lovell/sharp/issues/470) - [@pjarts](https://github.com/pjarts) - -* Add support for the "nearest" kernel for image reductions. - [#732](https://github.com/lovell/sharp/pull/732) - [@alice0meta](https://github.com/alice0meta) - -* Add support for TIFF compression and predictor options. - [#738](https://github.com/lovell/sharp/pull/738) - [@kristojorg](https://github.com/kristojorg) - -### v0.17.2 - 11th February 2017 - -* Ensure Readable side of Stream can start flowing after Writable side has finished. - [#671](https://github.com/lovell/sharp/issues/671) - [@danhaller](https://github.com/danhaller) - -* Expose WebP alpha quality, lossless and near-lossless output options. - [#685](https://github.com/lovell/sharp/pull/685) - [@rnanwani](https://github.com/rnanwani) - -### v0.17.1 - 15th January 2017 - -* Improve error messages for invalid parameters. - [@spikeon](https://github.com/spikeon) - [#644](https://github.com/lovell/sharp/pull/644) - -* Simplify expression for finding vips-cpp libdir. - [#656](https://github.com/lovell/sharp/pull/656) - -* Allow HTTPS-over-HTTP proxy when downloading pre-compiled dependencies. - [@wangzhiwei1888](https://github.com/wangzhiwei1888) - [#679](https://github.com/lovell/sharp/issues/679) - -### v0.17.0 - 11th December 2016 - -* Drop support for versions of Node prior to v4. - -* Deprecate the following output format "option" functions: - quality, progressive, compressionLevel, withoutAdaptiveFiltering, - withoutChromaSubsampling, trellisQuantisation, trellisQuantization, - overshootDeringing, optimiseScans and optimizeScans. - Access to these is now via output format functions, for example `quality(n)` - is now `jpeg({quality: n})` and/or `webp({quality: n})`. - -* Autoconvert GIF and SVG input to PNG output if no other format is specified. - -* Expose libvips' "centre" resize option to mimic \*magick's +0.5px convention. - [#568](https://github.com/lovell/sharp/issues/568) - -* Ensure support for embedded base64 PNG and JPEG images within an SVG. - [#601](https://github.com/lovell/sharp/issues/601) - [@dynamite-ready](https://github.com/dynamite-ready) - -* Ensure premultiply operation occurs before box filter shrink. - [#605](https://github.com/lovell/sharp/issues/605) - [@CmdrShepardsPie](https://github.com/CmdrShepardsPie) - [@teroparvinen](https://github.com/teroparvinen) - -* Add support for PNG and WebP tile-based output formats (in addition to JPEG). - [#622](https://github.com/lovell/sharp/pull/622) - [@ppaskaris](https://github.com/ppaskaris) - -* Allow use of extend with greyscale input. - [#623](https://github.com/lovell/sharp/pull/623) - [@ppaskaris](https://github.com/ppaskaris) - -* Allow non-RGB input to embed/extend onto background with an alpha channel. - [#646](https://github.com/lovell/sharp/issues/646) - [@DaGaMs](https://github.com/DaGaMs) - -## v0.16 - "*pencil*" - -Requires libvips v8.3.3 - -### v0.16.2 - 22nd October 2016 - -* Restrict readelf usage to Linux only when detecting global libvips version. - [#602](https://github.com/lovell/sharp/issues/602) - [@caoko](https://github.com/caoko) - -### v0.16.1 - 13th October 2016 - -* C++11 ABI version is now auto-detected, remove sharp-cxx11 installation flag. - -* Add experimental 'attention' crop strategy. - [#295](https://github.com/lovell/sharp/issues/295) - -* Include .node extension for Meteor's require() implementation. - [#537](https://github.com/lovell/sharp/issues/537) - [@isjackwild](https://github.com/isjackwild) - -* Ensure convolution kernel scale is clamped to a minimum value of 1. - [#561](https://github.com/lovell/sharp/issues/561) - [@abagshaw](https://github.com/abagshaw) - -* Correct calculation of y-axis placement when overlaying image at a fixed point. - [#566](https://github.com/lovell/sharp/issues/566) - [@Nateowami](https://github.com/Nateowami) - -### v0.16.0 - 18th August 2016 - -* Add pre-compiled libvips for OS X, ARMv7 and ARMv8. - [#312](https://github.com/lovell/sharp/issues/312) - -* Ensure boolean, bandbool, extractChannel ops occur before sRGB conversion. - [#504](https://github.com/lovell/sharp/pull/504) - [@mhirsch](https://github.com/mhirsch) - -* Recalculate factors after WebP shrink-on-load to avoid round-to-zero errors. - [#508](https://github.com/lovell/sharp/issues/508) - [@asilvas](https://github.com/asilvas) - -* Prevent boolean errors during extract operation. - [#511](https://github.com/lovell/sharp/pull/511) - [@mhirsch](https://github.com/mhirsch) - -* Add joinChannel and toColourspace/toColorspace operations. - [#513](https://github.com/lovell/sharp/pull/513) - [@mhirsch](https://github.com/mhirsch) - -* Add support for raw pixel data with boolean and withOverlay operations. - [#516](https://github.com/lovell/sharp/pull/516) - [@mhirsch](https://github.com/mhirsch) - -* Prevent bandbool creating a single channel sRGB image. - [#519](https://github.com/lovell/sharp/pull/519) - [@mhirsch](https://github.com/mhirsch) - -* Ensure ICC profiles are removed from PNG output unless withMetadata used. - [#521](https://github.com/lovell/sharp/issues/521) - [@ChrisPinewood](https://github.com/ChrisPinewood) - -* Add alpha channels, if missing, to overlayWith images. - [#540](https://github.com/lovell/sharp/pull/540) - [@cmtt](https://github.com/cmtt) - -* Remove deprecated interpolateWith method - use resize(w, h, { interpolator: ... }) - [#310](https://github.com/lovell/sharp/issues/310) - -## v0.15 - "*outfit*" - -Requires libvips v8.3.1 - -### v0.15.1 - 12th July 2016 - -* Concat Stream-based input in single operation for ~+3% perf and less GC. - [#429](https://github.com/lovell/sharp/issues/429) - [@papandreou](https://github.com/papandreou) - -* Add alpha channel, if required, before extend operation. - [#439](https://github.com/lovell/sharp/pull/439) - [@frulo](https://github.com/frulo) - -* Allow overlay image to be repeated across entire image via tile option. - [#443](https://github.com/lovell/sharp/pull/443) - [@lemnisk8](https://github.com/lemnisk8) - -* Add cutout option to overlayWith feature, applies only the alpha channel of the overlay image. - [#448](https://github.com/lovell/sharp/pull/448) - [@kleisauke](https://github.com/kleisauke) - -* Ensure scaling factors are calculated independently to prevent rounding errors. - [#452](https://github.com/lovell/sharp/issues/452) - [@puzrin](https://github.com/puzrin) - -* Add --sharp-cxx11 flag to compile with gcc's new C++11 ABI. - [#456](https://github.com/lovell/sharp/pull/456) - [@kapouer](https://github.com/kapouer) - -* Add top/left offset support to overlayWith operation. - [#473](https://github.com/lovell/sharp/pull/473) - [@rnanwani](https://github.com/rnanwani) - -* Add convolve operation for kernel-based convolution. - [#479](https://github.com/lovell/sharp/pull/479) - [@mhirsch](https://github.com/mhirsch) - -* Add greyscale option to threshold operation for colourspace conversion control. - [#480](https://github.com/lovell/sharp/pull/480) - [@mhirsch](https://github.com/mhirsch) - -* Ensure ICC profiles are licenced for distribution. - [#486](https://github.com/lovell/sharp/issues/486) - [@kapouer](https://github.com/kapouer) - -* Allow images with an alpha channel to work with LAB-colourspace based sharpen. - [#490](https://github.com/lovell/sharp/issues/490) - [@jwagner](https://github.com/jwagner) - -* Add trim operation to remove "boring" edges. - [#492](https://github.com/lovell/sharp/pull/492) - [@kleisauke](https://github.com/kleisauke) - -* Add bandbool feature for channel-wise boolean operations. - [#496](https://github.com/lovell/sharp/pull/496) - [@mhirsch](https://github.com/mhirsch) - -* Add extractChannel operation to extract a channel from an image. - [#497](https://github.com/lovell/sharp/pull/497) - [@mhirsch](https://github.com/mhirsch) - -* Add ability to read and write native libvips .v files. - [#500](https://github.com/lovell/sharp/pull/500) - [@mhirsch](https://github.com/mhirsch) - -* Add boolean feature for bitwise image operations. - [#501](https://github.com/lovell/sharp/pull/501) - [@mhirsch](https://github.com/mhirsch) - -### v0.15.0 - 21st May 2016 - -* Use libvips' new Lanczos 3 kernel as default for image reduction. - Deprecate interpolateWith method, now provided as a resize option. - [#310](https://github.com/lovell/sharp/issues/310) - [@jcupitt](https://github.com/jcupitt) - -* Take advantage of libvips v8.3 features. - Add support for libvips' new GIF and SVG loaders. - Pre-built binaries now include giflib and librsvg, exclude *magick. - Use shrink-on-load for WebP input. - Break existing sharpen API to accept sigma and improve precision. - [#369](https://github.com/lovell/sharp/issues/369) - -* Remove unnecessary (un)premultiply operations when not resizing/compositing. - [#413](https://github.com/lovell/sharp/issues/413) - [@jardakotesovec](https://github.com/jardakotesovec) - -## v0.14 - "*needle*" - -Requires libvips v8.2.3 - -### v0.14.1 - 16th April 2016 - -* Allow removal of limitation on input pixel count via limitInputPixels. Use with care. - [#250](https://github.com/lovell/sharp/issues/250) - [#316](https://github.com/lovell/sharp/pull/316) - [@anandthakker](https://github.com/anandthakker) - [@kentongray](https://github.com/kentongray) - -* Use final output image for metadata passed to callback. - [#399](https://github.com/lovell/sharp/pull/399) - [@salzhrani](https://github.com/salzhrani) - -* Add support for writing tiled images to a zip container. - [#402](https://github.com/lovell/sharp/pull/402) - [@felixbuenemann](https://github.com/felixbuenemann) - -* Allow use of embed with 1 and 2 channel images. - [#411](https://github.com/lovell/sharp/issues/411) - [@janaz](https://github.com/janaz) - -* Improve Electron compatibility by allowing node-gyp rebuilds without npm. - [#412](https://github.com/lovell/sharp/issues/412) - [@nouh](https://github.com/nouh) - -### v0.14.0 - 2nd April 2016 - -* Add ability to extend (pad) the edges of an image. - [#128](https://github.com/lovell/sharp/issues/128) - [@blowsie](https://github.com/blowsie) - -* Add support for Zoomify and Google tile layouts. Breaks existing tile API. - [#223](https://github.com/lovell/sharp/issues/223) - [@bdunnette](https://github.com/bdunnette) - -* Improvements to overlayWith: differing sizes/formats, gravity, buffer input. - [#239](https://github.com/lovell/sharp/issues/239) - [@chrisriley](https://github.com/chrisriley) - -* Add entropy-based crop strategy to remove least interesting edges. - [#295](https://github.com/lovell/sharp/issues/295) - [@rightaway](https://github.com/rightaway) - -* Expose density metadata; set density of images from vector input. - [#338](https://github.com/lovell/sharp/issues/338) - [@lookfirst](https://github.com/lookfirst) - -* Emit post-processing 'info' event for Stream output. - [#367](https://github.com/lovell/sharp/issues/367) - [@salzhrani](https://github.com/salzhrani) - -* Ensure output image EXIF Orientation values are within 1-8 range. - [#385](https://github.com/lovell/sharp/pull/385) - [@jtobinisaniceguy](https://github.com/jtobinisaniceguy) - -* Ensure ratios are not swapped when rotating 90/270 and ignoring aspect. - [#387](https://github.com/lovell/sharp/issues/387) - [@kleisauke](https://github.com/kleisauke) - -* Remove deprecated style of calling extract API. Breaks calls using positional arguments. - [#276](https://github.com/lovell/sharp/issues/276) - -## v0.13 - "*mind*" - -Requires libvips v8.2.2 - -### v0.13.1 - 27th February 2016 - -* Fix embedding onto transparent backgrounds; regression introduced in v0.13.0. - [#366](https://github.com/lovell/sharp/issues/366) - [@diegocsandrim](https://github.com/diegocsandrim) - -### v0.13.0 - 15th February 2016 - -* Improve vector image support by allowing control of density/DPI. - Switch pre-built libs from Imagemagick to Graphicsmagick. - [#110](https://github.com/lovell/sharp/issues/110) - [@bradisbell](https://github.com/bradisbell) - -* Add support for raw, uncompressed pixel Buffer/Stream input. - [#220](https://github.com/lovell/sharp/issues/220) - [@mikemorris](https://github.com/mikemorris) - -* Switch from libvips' C to C++ bindings, requires upgrade to v8.2.2. - [#299](https://github.com/lovell/sharp/issues/299) - -* Control number of open files in libvips' cache; breaks existing `cache` behaviour. - [#315](https://github.com/lovell/sharp/issues/315) - [@impomezia](https://github.com/impomezia) - -* Ensure 16-bit input images can be normalised and embedded onto transparent backgrounds. - [#339](https://github.com/lovell/sharp/issues/339) - [#340](https://github.com/lovell/sharp/issues/340) - [@janaz](https://github.com/janaz) - -* Ensure selected format takes precedence over any unknown output filename extension. - [#344](https://github.com/lovell/sharp/issues/344) - [@ubaltaci](https://github.com/ubaltaci) - -* Add support for libvips' PBM, PGM, PPM and FITS image format loaders. - [#347](https://github.com/lovell/sharp/issues/347) - [@oaleynik](https://github.com/oaleynik) - -* Ensure default crop gravity is center/centre. - [#351](https://github.com/lovell/sharp/pull/351) - [@joelmukuthu](https://github.com/joelmukuthu) - -* Improve support for musl libc systems e.g. Alpine Linux. - [#354](https://github.com/lovell/sharp/issues/354) - [#359](https://github.com/lovell/sharp/pull/359) - [@download13](https://github.com/download13) - [@wjordan](https://github.com/wjordan) - -* Small optimisation when reducing by an integral factor to favour shrink over affine. - -* Add support for gamma correction of images with an alpha channel. - -## v0.12 - "*look*" - -Requires libvips v8.2.0 - -### v0.12.2 - 16th January 2016 - -* Upgrade libvips to v8.2.0 for improved vips_shrink. - -* Add pre-compiled libvips for ARMv6+ CPUs. - -* Ensure 16-bit input images work with embed option. - [#325](https://github.com/lovell/sharp/issues/325) - [@janaz](https://github.com/janaz) - -* Allow compilation with gmake to provide FreeBSD support. - [#326](https://github.com/lovell/sharp/issues/326) - [@c0decafe](https://github.com/c0decafe) - -* Attempt to remove temporary file after installation. - [#331](https://github.com/lovell/sharp/issues/331) - [@dtoubelis](https://github.com/dtoubelis) - -### v0.12.1 - 12th December 2015 - -* Allow use of SIMD vector instructions (via liborc) to be toggled on/off. - [#172](https://github.com/lovell/sharp/issues/172) - [@bkw](https://github.com/bkw) - [@puzrin](https://github.com/puzrin) - -* Ensure embedded ICC profiles output with perceptual intent. - [#321](https://github.com/lovell/sharp/issues/321) - [@vlapo](https://github.com/vlapo) - -* Use the NPM-configured HTTPS proxy, if any, for binary downloads. - -### v0.12.0 - 23rd November 2015 - -* Bundle pre-compiled libvips and its dependencies for 64-bit Linux and Windows. - [#42](https://github.com/lovell/sharp/issues/42) - -* Take advantage of libvips v8.1.0+ features. - [#152](https://github.com/lovell/sharp/issues/152) - -* Add support for 64-bit Windows. Drop support for 32-bit Windows. - [#224](https://github.com/lovell/sharp/issues/224) - [@sabrehagen](https://github.com/sabrehagen) - -* Switch default interpolator to bicubic. - [#289](https://github.com/lovell/sharp/issues/289) - [@mahnunchik](https://github.com/mahnunchik) - -* Pre-extract rotatation should not swap width/height. - [#296](https://github.com/lovell/sharp/issues/296) - [@asilvas](https://github.com/asilvas) - -* Ensure 16-bit+alpha input images are (un)premultiplied correctly. - [#301](https://github.com/lovell/sharp/issues/301) - [@izaakschroeder](https://github.com/izaakschroeder) - -* Add `threshold` operation. - [#303](https://github.com/lovell/sharp/pull/303) - [@dacarley](https://github.com/dacarley) - -* Add `negate` operation. - [#306](https://github.com/lovell/sharp/pull/306) - [@dacarley](https://github.com/dacarley) - -* Support `options` Object with existing `extract` operation. - [#309](https://github.com/lovell/sharp/pull/309) - [@papandreou](https://github.com/papandreou) - -## v0.11 - "*knife*" - -### v0.11.4 - 5th November 2015 - -* Add corners, e.g. `northeast`, to existing `gravity` option. - [#291](https://github.com/lovell/sharp/pull/291) - [@brandonaaron](https://github.com/brandonaaron) - -* Ensure correct auto-rotation for EXIF Orientation values 2 and 4. - [#288](https://github.com/lovell/sharp/pull/288) - [@brandonaaron](https://github.com/brandonaaron) - -* Make static linking possible via `--runtime_link` install option. - [#287](https://github.com/lovell/sharp/pull/287) - [@vlapo](https://github.com/vlapo) - -### v0.11.3 - 8th September 2015 - -* Intrepret blurSigma, sharpenFlat, and sharpenJagged as double precision. - [#263](https://github.com/lovell/sharp/pull/263) - [@chrisriley](https://github.com/chrisriley) - -### v0.11.2 - 28th August 2015 - -* Allow crop gravity to be provided as a String. - [#255](https://github.com/lovell/sharp/pull/255) - [@papandreou](https://github.com/papandreou) -* Add support for io.js v3 and Node v4. - [#246](https://github.com/lovell/sharp/issues/246) - -### v0.11.1 - 12th August 2015 - -* Silence MSVC warning: "C4530: C++ exception handler used, but unwind semantics are not enabled". - [#244](https://github.com/lovell/sharp/pull/244) - [@TheThing](https://github.com/TheThing) - -* Suppress gamma correction for input image with alpha transparency. - [#249](https://github.com/lovell/sharp/issues/249) - [@compeak](https://github.com/compeak) - -### v0.11.0 - 15th July 2015 - -* Allow alpha transparency compositing via new `overlayWith` method. - [#97](https://github.com/lovell/sharp/issues/97) - [@gasi](https://github.com/gasi) - -* Expose raw ICC profile data as a Buffer when using `metadata`. - [#129](https://github.com/lovell/sharp/issues/129) - [@homerjam](https://github.com/homerjam) - -* Allow image header updates via a parameter passed to existing `withMetadata` method. - Provide initial support for EXIF `Orientation` tag, - which if present is now removed when using `rotate`, `flip` or `flop`. - [#189](https://github.com/lovell/sharp/issues/189) - [@h2non](https://github.com/h2non) - -* Tighten constructor parameter checks. - [#221](https://github.com/lovell/sharp/issues/221) - [@mikemorris](https://github.com/mikemorris) - -* Allow one input Stream to be shared with two or more output Streams via new `clone` method. - [#235](https://github.com/lovell/sharp/issues/235) - [@jaubourg](https://github.com/jaubourg) - -* Use `round` instead of `floor` when auto-scaling dimensions to avoid floating-point rounding errors. - [#238](https://github.com/lovell/sharp/issues/238) - [@richardadjogah](https://github.com/richardadjogah) - -## v0.10 - "*judgment*" - -### v0.10.1 - 1st June 2015 - -* Allow embed of image with alpha transparency onto non-transparent background. - [#204](https://github.com/lovell/sharp/issues/204) - [@mikemliu](https://github.com/mikemliu) - -* Include C standard library for `atoi` as Xcode 6.3 appears to no longer do this. - [#228](https://github.com/lovell/sharp/issues/228) - [@doggan](https://github.com/doggan) - -### v0.10.0 - 23rd April 2015 - -* Add support for Windows (x86). - [#19](https://github.com/lovell/sharp/issues/19) - [@DullReferenceException](https://github.com/DullReferenceException) - [@itsananderson](https://github.com/itsananderson) - -* Add support for Openslide input and DeepZoom output. - [#146](https://github.com/lovell/sharp/issues/146) - [@mvictoras](https://github.com/mvictoras) - -* Allow arbitrary aspect ratios when resizing images via new `ignoreAspectRatio` method. - [#192](https://github.com/lovell/sharp/issues/192) - [@skedastik](https://github.com/skedastik) - -* Enhance output image contrast by stretching its luminance to cover the full dynamic range via new `normalize` method. - [#194](https://github.com/lovell/sharp/issues/194) - [@bkw](https://github.com/bkw) - [@codingforce](https://github.com/codingforce) diff --git a/docs/src/content/docs/changelog/_meta.yml b/docs/src/content/docs/changelog/_meta.yml new file mode 100644 index 00000000..5dd25724 --- /dev/null +++ b/docs/src/content/docs/changelog/_meta.yml @@ -0,0 +1 @@ +sort: reverse-slug diff --git a/docs/src/content/docs/changelog/v0.10.0.md b/docs/src/content/docs/changelog/v0.10.0.md new file mode 100644 index 00000000..aae2ca0e --- /dev/null +++ b/docs/src/content/docs/changelog/v0.10.0.md @@ -0,0 +1,22 @@ +--- +title: v0.10.0 - 23rd April 2015 +slug: changelog/v0.10.0 +--- + +* Add support for Windows (x86). + [#19](https://github.com/lovell/sharp/issues/19) + [@DullReferenceException](https://github.com/DullReferenceException) + [@itsananderson](https://github.com/itsananderson) + +* Add support for Openslide input and DeepZoom output. + [#146](https://github.com/lovell/sharp/issues/146) + [@mvictoras](https://github.com/mvictoras) + +* Allow arbitrary aspect ratios when resizing images via new `ignoreAspectRatio` method. + [#192](https://github.com/lovell/sharp/issues/192) + [@skedastik](https://github.com/skedastik) + +* Enhance output image contrast by stretching its luminance to cover the full dynamic range via new `normalize` method. + [#194](https://github.com/lovell/sharp/issues/194) + [@bkw](https://github.com/bkw) + [@codingforce](https://github.com/codingforce) diff --git a/docs/src/content/docs/changelog/v0.10.1.md b/docs/src/content/docs/changelog/v0.10.1.md new file mode 100644 index 00000000..6f033686 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.10.1.md @@ -0,0 +1,12 @@ +--- +title: v0.10.1 - 1st June 2015 +slug: changelog/v0.10.1 +--- + +* Allow embed of image with alpha transparency onto non-transparent background. + [#204](https://github.com/lovell/sharp/issues/204) + [@mikemliu](https://github.com/mikemliu) + +* Include C standard library for `atoi` as Xcode 6.3 appears to no longer do this. + [#228](https://github.com/lovell/sharp/issues/228) + [@doggan](https://github.com/doggan) diff --git a/docs/src/content/docs/changelog/v0.11.0.md b/docs/src/content/docs/changelog/v0.11.0.md new file mode 100644 index 00000000..2b07a93a --- /dev/null +++ b/docs/src/content/docs/changelog/v0.11.0.md @@ -0,0 +1,30 @@ +--- +title: v0.11.0 - 15th July 2015 +slug: changelog/v0.11.0 +--- + +* Allow alpha transparency compositing via new `overlayWith` method. + [#97](https://github.com/lovell/sharp/issues/97) + [@gasi](https://github.com/gasi) + +* Expose raw ICC profile data as a Buffer when using `metadata`. + [#129](https://github.com/lovell/sharp/issues/129) + [@homerjam](https://github.com/homerjam) + +* Allow image header updates via a parameter passed to existing `withMetadata` method. + Provide initial support for EXIF `Orientation` tag, + which if present is now removed when using `rotate`, `flip` or `flop`. + [#189](https://github.com/lovell/sharp/issues/189) + [@h2non](https://github.com/h2non) + +* Tighten constructor parameter checks. + [#221](https://github.com/lovell/sharp/issues/221) + [@mikemorris](https://github.com/mikemorris) + +* Allow one input Stream to be shared with two or more output Streams via new `clone` method. + [#235](https://github.com/lovell/sharp/issues/235) + [@jaubourg](https://github.com/jaubourg) + +* Use `round` instead of `floor` when auto-scaling dimensions to avoid floating-point rounding errors. + [#238](https://github.com/lovell/sharp/issues/238) + [@richardadjogah](https://github.com/richardadjogah) diff --git a/docs/src/content/docs/changelog/v0.11.1.md b/docs/src/content/docs/changelog/v0.11.1.md new file mode 100644 index 00000000..44bdfc92 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.11.1.md @@ -0,0 +1,12 @@ +--- +title: v0.11.1 - 12th August 2015 +slug: changelog/v0.11.1 +--- + +* Silence MSVC warning: "C4530: C++ exception handler used, but unwind semantics are not enabled". + [#244](https://github.com/lovell/sharp/pull/244) + [@TheThing](https://github.com/TheThing) + +* Suppress gamma correction for input image with alpha transparency. + [#249](https://github.com/lovell/sharp/issues/249) + [@compeak](https://github.com/compeak) diff --git a/docs/src/content/docs/changelog/v0.11.2.md b/docs/src/content/docs/changelog/v0.11.2.md new file mode 100644 index 00000000..9990b05f --- /dev/null +++ b/docs/src/content/docs/changelog/v0.11.2.md @@ -0,0 +1,10 @@ +--- +title: v0.11.2 - 28th August 2015 +slug: changelog/v0.11.2 +--- + +* Allow crop gravity to be provided as a String. + [#255](https://github.com/lovell/sharp/pull/255) + [@papandreou](https://github.com/papandreou) +* Add support for io.js v3 and Node v4. + [#246](https://github.com/lovell/sharp/issues/246) diff --git a/docs/src/content/docs/changelog/v0.11.3.md b/docs/src/content/docs/changelog/v0.11.3.md new file mode 100644 index 00000000..a062d1b8 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.11.3.md @@ -0,0 +1,8 @@ +--- +title: v0.11.3 - 8th September 2015 +slug: changelog/v0.11.3 +--- + +* Intrepret blurSigma, sharpenFlat, and sharpenJagged as double precision. + [#263](https://github.com/lovell/sharp/pull/263) + [@chrisriley](https://github.com/chrisriley) diff --git a/docs/src/content/docs/changelog/v0.11.4.md b/docs/src/content/docs/changelog/v0.11.4.md new file mode 100644 index 00000000..f8cba2cd --- /dev/null +++ b/docs/src/content/docs/changelog/v0.11.4.md @@ -0,0 +1,16 @@ +--- +title: v0.11.4 - 5th November 2015 +slug: changelog/v0.11.4 +--- + +* Add corners, e.g. `northeast`, to existing `gravity` option. + [#291](https://github.com/lovell/sharp/pull/291) + [@brandonaaron](https://github.com/brandonaaron) + +* Ensure correct auto-rotation for EXIF Orientation values 2 and 4. + [#288](https://github.com/lovell/sharp/pull/288) + [@brandonaaron](https://github.com/brandonaaron) + +* Make static linking possible via `--runtime_link` install option. + [#287](https://github.com/lovell/sharp/pull/287) + [@vlapo](https://github.com/vlapo) diff --git a/docs/src/content/docs/changelog/v0.12.0.md b/docs/src/content/docs/changelog/v0.12.0.md new file mode 100644 index 00000000..c081be9d --- /dev/null +++ b/docs/src/content/docs/changelog/v0.12.0.md @@ -0,0 +1,38 @@ +--- +title: v0.12.0 - 23rd November 2015 +slug: changelog/v0.12.0 +--- + +* Bundle pre-compiled libvips and its dependencies for 64-bit Linux and Windows. + [#42](https://github.com/lovell/sharp/issues/42) + +* Take advantage of libvips v8.1.0+ features. + [#152](https://github.com/lovell/sharp/issues/152) + +* Add support for 64-bit Windows. Drop support for 32-bit Windows. + [#224](https://github.com/lovell/sharp/issues/224) + [@sabrehagen](https://github.com/sabrehagen) + +* Switch default interpolator to bicubic. + [#289](https://github.com/lovell/sharp/issues/289) + [@mahnunchik](https://github.com/mahnunchik) + +* Pre-extract rotatation should not swap width/height. + [#296](https://github.com/lovell/sharp/issues/296) + [@asilvas](https://github.com/asilvas) + +* Ensure 16-bit+alpha input images are (un)premultiplied correctly. + [#301](https://github.com/lovell/sharp/issues/301) + [@izaakschroeder](https://github.com/izaakschroeder) + +* Add `threshold` operation. + [#303](https://github.com/lovell/sharp/pull/303) + [@dacarley](https://github.com/dacarley) + +* Add `negate` operation. + [#306](https://github.com/lovell/sharp/pull/306) + [@dacarley](https://github.com/dacarley) + +* Support `options` Object with existing `extract` operation. + [#309](https://github.com/lovell/sharp/pull/309) + [@papandreou](https://github.com/papandreou) diff --git a/docs/src/content/docs/changelog/v0.12.1.md b/docs/src/content/docs/changelog/v0.12.1.md new file mode 100644 index 00000000..61fb46a8 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.12.1.md @@ -0,0 +1,15 @@ +--- +title: v0.12.1 - 12th December 2015 +slug: changelog/v0.12.1 +--- + +* Allow use of SIMD vector instructions (via liborc) to be toggled on/off. + [#172](https://github.com/lovell/sharp/issues/172) + [@bkw](https://github.com/bkw) + [@puzrin](https://github.com/puzrin) + +* Ensure embedded ICC profiles output with perceptual intent. + [#321](https://github.com/lovell/sharp/issues/321) + [@vlapo](https://github.com/vlapo) + +* Use the NPM-configured HTTPS proxy, if any, for binary downloads. diff --git a/docs/src/content/docs/changelog/v0.12.2.md b/docs/src/content/docs/changelog/v0.12.2.md new file mode 100644 index 00000000..91dd927d --- /dev/null +++ b/docs/src/content/docs/changelog/v0.12.2.md @@ -0,0 +1,20 @@ +--- +title: v0.12.2 - 16th January 2016 +slug: changelog/v0.12.2 +--- + +* Upgrade libvips to v8.2.0 for improved vips_shrink. + +* Add pre-compiled libvips for ARMv6+ CPUs. + +* Ensure 16-bit input images work with embed option. + [#325](https://github.com/lovell/sharp/issues/325) + [@janaz](https://github.com/janaz) + +* Allow compilation with gmake to provide FreeBSD support. + [#326](https://github.com/lovell/sharp/issues/326) + [@c0decafe](https://github.com/c0decafe) + +* Attempt to remove temporary file after installation. + [#331](https://github.com/lovell/sharp/issues/331) + [@dtoubelis](https://github.com/dtoubelis) diff --git a/docs/src/content/docs/changelog/v0.13.0.md b/docs/src/content/docs/changelog/v0.13.0.md new file mode 100644 index 00000000..f1c989a6 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.13.0.md @@ -0,0 +1,47 @@ +--- +title: v0.13.0 - 15th February 2016 +slug: changelog/v0.13.0 +--- + +* Improve vector image support by allowing control of density/DPI. + Switch pre-built libs from Imagemagick to Graphicsmagick. + [#110](https://github.com/lovell/sharp/issues/110) + [@bradisbell](https://github.com/bradisbell) + +* Add support for raw, uncompressed pixel Buffer/Stream input. + [#220](https://github.com/lovell/sharp/issues/220) + [@mikemorris](https://github.com/mikemorris) + +* Switch from libvips' C to C++ bindings, requires upgrade to v8.2.2. + [#299](https://github.com/lovell/sharp/issues/299) + +* Control number of open files in libvips' cache; breaks existing `cache` behaviour. + [#315](https://github.com/lovell/sharp/issues/315) + [@impomezia](https://github.com/impomezia) + +* Ensure 16-bit input images can be normalised and embedded onto transparent backgrounds. + [#339](https://github.com/lovell/sharp/issues/339) + [#340](https://github.com/lovell/sharp/issues/340) + [@janaz](https://github.com/janaz) + +* Ensure selected format takes precedence over any unknown output filename extension. + [#344](https://github.com/lovell/sharp/issues/344) + [@ubaltaci](https://github.com/ubaltaci) + +* Add support for libvips' PBM, PGM, PPM and FITS image format loaders. + [#347](https://github.com/lovell/sharp/issues/347) + [@oaleynik](https://github.com/oaleynik) + +* Ensure default crop gravity is center/centre. + [#351](https://github.com/lovell/sharp/pull/351) + [@joelmukuthu](https://github.com/joelmukuthu) + +* Improve support for musl libc systems e.g. Alpine Linux. + [#354](https://github.com/lovell/sharp/issues/354) + [#359](https://github.com/lovell/sharp/pull/359) + [@download13](https://github.com/download13) + [@wjordan](https://github.com/wjordan) + +* Small optimisation when reducing by an integral factor to favour shrink over affine. + +* Add support for gamma correction of images with an alpha channel. diff --git a/docs/src/content/docs/changelog/v0.13.1.md b/docs/src/content/docs/changelog/v0.13.1.md new file mode 100644 index 00000000..cbaf11ec --- /dev/null +++ b/docs/src/content/docs/changelog/v0.13.1.md @@ -0,0 +1,8 @@ +--- +title: v0.13.1 - 27th February 2016 +slug: changelog/v0.13.1 +--- + +* Fix embedding onto transparent backgrounds; regression introduced in v0.13.0. + [#366](https://github.com/lovell/sharp/issues/366) + [@diegocsandrim](https://github.com/diegocsandrim) diff --git a/docs/src/content/docs/changelog/v0.14.0.md b/docs/src/content/docs/changelog/v0.14.0.md new file mode 100644 index 00000000..a23f2e7f --- /dev/null +++ b/docs/src/content/docs/changelog/v0.14.0.md @@ -0,0 +1,39 @@ +--- +title: v0.14.0 - 2nd April 2016 +slug: changelog/v0.14.0 +--- + +* Add ability to extend (pad) the edges of an image. + [#128](https://github.com/lovell/sharp/issues/128) + [@blowsie](https://github.com/blowsie) + +* Add support for Zoomify and Google tile layouts. Breaks existing tile API. + [#223](https://github.com/lovell/sharp/issues/223) + [@bdunnette](https://github.com/bdunnette) + +* Improvements to overlayWith: differing sizes/formats, gravity, buffer input. + [#239](https://github.com/lovell/sharp/issues/239) + [@chrisriley](https://github.com/chrisriley) + +* Add entropy-based crop strategy to remove least interesting edges. + [#295](https://github.com/lovell/sharp/issues/295) + [@rightaway](https://github.com/rightaway) + +* Expose density metadata; set density of images from vector input. + [#338](https://github.com/lovell/sharp/issues/338) + [@lookfirst](https://github.com/lookfirst) + +* Emit post-processing 'info' event for Stream output. + [#367](https://github.com/lovell/sharp/issues/367) + [@salzhrani](https://github.com/salzhrani) + +* Ensure output image EXIF Orientation values are within 1-8 range. + [#385](https://github.com/lovell/sharp/pull/385) + [@jtobinisaniceguy](https://github.com/jtobinisaniceguy) + +* Ensure ratios are not swapped when rotating 90/270 and ignoring aspect. + [#387](https://github.com/lovell/sharp/issues/387) + [@kleisauke](https://github.com/kleisauke) + +* Remove deprecated style of calling extract API. Breaks calls using positional arguments. + [#276](https://github.com/lovell/sharp/issues/276) diff --git a/docs/src/content/docs/changelog/v0.14.1.md b/docs/src/content/docs/changelog/v0.14.1.md new file mode 100644 index 00000000..85e88c8b --- /dev/null +++ b/docs/src/content/docs/changelog/v0.14.1.md @@ -0,0 +1,26 @@ +--- +title: v0.14.1 - 16th April 2016 +slug: changelog/v0.14.1 +--- + +* Allow removal of limitation on input pixel count via limitInputPixels. Use with care. + [#250](https://github.com/lovell/sharp/issues/250) + [#316](https://github.com/lovell/sharp/pull/316) + [@anandthakker](https://github.com/anandthakker) + [@kentongray](https://github.com/kentongray) + +* Use final output image for metadata passed to callback. + [#399](https://github.com/lovell/sharp/pull/399) + [@salzhrani](https://github.com/salzhrani) + +* Add support for writing tiled images to a zip container. + [#402](https://github.com/lovell/sharp/pull/402) + [@felixbuenemann](https://github.com/felixbuenemann) + +* Allow use of embed with 1 and 2 channel images. + [#411](https://github.com/lovell/sharp/issues/411) + [@janaz](https://github.com/janaz) + +* Improve Electron compatibility by allowing node-gyp rebuilds without npm. + [#412](https://github.com/lovell/sharp/issues/412) + [@nouh](https://github.com/nouh) diff --git a/docs/src/content/docs/changelog/v0.15.0.md b/docs/src/content/docs/changelog/v0.15.0.md new file mode 100644 index 00000000..ed7807f9 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.15.0.md @@ -0,0 +1,20 @@ +--- +title: v0.15.0 - 21st May 2016 +slug: changelog/v0.15.0 +--- + +* Use libvips' new Lanczos 3 kernel as default for image reduction. + Deprecate interpolateWith method, now provided as a resize option. + [#310](https://github.com/lovell/sharp/issues/310) + [@jcupitt](https://github.com/jcupitt) + +* Take advantage of libvips v8.3 features. + Add support for libvips' new GIF and SVG loaders. + Pre-built binaries now include giflib and librsvg, exclude *magick. + Use shrink-on-load for WebP input. + Break existing sharpen API to accept sigma and improve precision. + [#369](https://github.com/lovell/sharp/issues/369) + +* Remove unnecessary (un)premultiply operations when not resizing/compositing. + [#413](https://github.com/lovell/sharp/issues/413) + [@jardakotesovec](https://github.com/jardakotesovec) diff --git a/docs/src/content/docs/changelog/v0.15.1.md b/docs/src/content/docs/changelog/v0.15.1.md new file mode 100644 index 00000000..4cfdfba7 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.15.1.md @@ -0,0 +1,68 @@ +--- +title: v0.15.1 - 12th July 2016 +slug: changelog/v0.15.1 +--- + +* Concat Stream-based input in single operation for ~+3% perf and less GC. + [#429](https://github.com/lovell/sharp/issues/429) + [@papandreou](https://github.com/papandreou) + +* Add alpha channel, if required, before extend operation. + [#439](https://github.com/lovell/sharp/pull/439) + [@frulo](https://github.com/frulo) + +* Allow overlay image to be repeated across entire image via tile option. + [#443](https://github.com/lovell/sharp/pull/443) + [@lemnisk8](https://github.com/lemnisk8) + +* Add cutout option to overlayWith feature, applies only the alpha channel of the overlay image. + [#448](https://github.com/lovell/sharp/pull/448) + [@kleisauke](https://github.com/kleisauke) + +* Ensure scaling factors are calculated independently to prevent rounding errors. + [#452](https://github.com/lovell/sharp/issues/452) + [@puzrin](https://github.com/puzrin) + +* Add --sharp-cxx11 flag to compile with gcc's new C++11 ABI. + [#456](https://github.com/lovell/sharp/pull/456) + [@kapouer](https://github.com/kapouer) + +* Add top/left offset support to overlayWith operation. + [#473](https://github.com/lovell/sharp/pull/473) + [@rnanwani](https://github.com/rnanwani) + +* Add convolve operation for kernel-based convolution. + [#479](https://github.com/lovell/sharp/pull/479) + [@mhirsch](https://github.com/mhirsch) + +* Add greyscale option to threshold operation for colourspace conversion control. + [#480](https://github.com/lovell/sharp/pull/480) + [@mhirsch](https://github.com/mhirsch) + +* Ensure ICC profiles are licenced for distribution. + [#486](https://github.com/lovell/sharp/issues/486) + [@kapouer](https://github.com/kapouer) + +* Allow images with an alpha channel to work with LAB-colourspace based sharpen. + [#490](https://github.com/lovell/sharp/issues/490) + [@jwagner](https://github.com/jwagner) + +* Add trim operation to remove "boring" edges. + [#492](https://github.com/lovell/sharp/pull/492) + [@kleisauke](https://github.com/kleisauke) + +* Add bandbool feature for channel-wise boolean operations. + [#496](https://github.com/lovell/sharp/pull/496) + [@mhirsch](https://github.com/mhirsch) + +* Add extractChannel operation to extract a channel from an image. + [#497](https://github.com/lovell/sharp/pull/497) + [@mhirsch](https://github.com/mhirsch) + +* Add ability to read and write native libvips .v files. + [#500](https://github.com/lovell/sharp/pull/500) + [@mhirsch](https://github.com/mhirsch) + +* Add boolean feature for bitwise image operations. + [#501](https://github.com/lovell/sharp/pull/501) + [@mhirsch](https://github.com/mhirsch) diff --git a/docs/src/content/docs/changelog/v0.16.0.md b/docs/src/content/docs/changelog/v0.16.0.md new file mode 100644 index 00000000..b6af330f --- /dev/null +++ b/docs/src/content/docs/changelog/v0.16.0.md @@ -0,0 +1,42 @@ +--- +title: v0.16.0 - 18th August 2016 +slug: changelog/v0.16.0 +--- + +* Add pre-compiled libvips for OS X, ARMv7 and ARMv8. + [#312](https://github.com/lovell/sharp/issues/312) + +* Ensure boolean, bandbool, extractChannel ops occur before sRGB conversion. + [#504](https://github.com/lovell/sharp/pull/504) + [@mhirsch](https://github.com/mhirsch) + +* Recalculate factors after WebP shrink-on-load to avoid round-to-zero errors. + [#508](https://github.com/lovell/sharp/issues/508) + [@asilvas](https://github.com/asilvas) + +* Prevent boolean errors during extract operation. + [#511](https://github.com/lovell/sharp/pull/511) + [@mhirsch](https://github.com/mhirsch) + +* Add joinChannel and toColourspace/toColorspace operations. + [#513](https://github.com/lovell/sharp/pull/513) + [@mhirsch](https://github.com/mhirsch) + +* Add support for raw pixel data with boolean and withOverlay operations. + [#516](https://github.com/lovell/sharp/pull/516) + [@mhirsch](https://github.com/mhirsch) + +* Prevent bandbool creating a single channel sRGB image. + [#519](https://github.com/lovell/sharp/pull/519) + [@mhirsch](https://github.com/mhirsch) + +* Ensure ICC profiles are removed from PNG output unless withMetadata used. + [#521](https://github.com/lovell/sharp/issues/521) + [@ChrisPinewood](https://github.com/ChrisPinewood) + +* Add alpha channels, if missing, to overlayWith images. + [#540](https://github.com/lovell/sharp/pull/540) + [@cmtt](https://github.com/cmtt) + +* Remove deprecated interpolateWith method - use resize(w, h, { interpolator: ... }) + [#310](https://github.com/lovell/sharp/issues/310) diff --git a/docs/src/content/docs/changelog/v0.16.1.md b/docs/src/content/docs/changelog/v0.16.1.md new file mode 100644 index 00000000..c49d2898 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.16.1.md @@ -0,0 +1,21 @@ +--- +title: v0.16.1 - 13th October 2016 +slug: changelog/v0.16.1 +--- + +* C++11 ABI version is now auto-detected, remove sharp-cxx11 installation flag. + +* Add experimental 'attention' crop strategy. + [#295](https://github.com/lovell/sharp/issues/295) + +* Include .node extension for Meteor's require() implementation. + [#537](https://github.com/lovell/sharp/issues/537) + [@isjackwild](https://github.com/isjackwild) + +* Ensure convolution kernel scale is clamped to a minimum value of 1. + [#561](https://github.com/lovell/sharp/issues/561) + [@abagshaw](https://github.com/abagshaw) + +* Correct calculation of y-axis placement when overlaying image at a fixed point. + [#566](https://github.com/lovell/sharp/issues/566) + [@Nateowami](https://github.com/Nateowami) diff --git a/docs/src/content/docs/changelog/v0.16.2.md b/docs/src/content/docs/changelog/v0.16.2.md new file mode 100644 index 00000000..8c3976c6 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.16.2.md @@ -0,0 +1,8 @@ +--- +title: v0.16.2 - 22nd October 2016 +slug: changelog/v0.16.2 +--- + +* Restrict readelf usage to Linux only when detecting global libvips version. + [#602](https://github.com/lovell/sharp/issues/602) + [@caoko](https://github.com/caoko) diff --git a/docs/src/content/docs/changelog/v0.17.0.md b/docs/src/content/docs/changelog/v0.17.0.md new file mode 100644 index 00000000..4ec1f185 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.17.0.md @@ -0,0 +1,39 @@ +--- +title: v0.17.0 - 11th December 2016 +slug: changelog/v0.17.0 +--- + +* Drop support for versions of Node prior to v4. + +* Deprecate the following output format "option" functions: + quality, progressive, compressionLevel, withoutAdaptiveFiltering, + withoutChromaSubsampling, trellisQuantisation, trellisQuantization, + overshootDeringing, optimiseScans and optimizeScans. + Access to these is now via output format functions, for example `quality(n)` + is now `jpeg({quality: n})` and/or `webp({quality: n})`. + +* Autoconvert GIF and SVG input to PNG output if no other format is specified. + +* Expose libvips' "centre" resize option to mimic \*magick's +0.5px convention. + [#568](https://github.com/lovell/sharp/issues/568) + +* Ensure support for embedded base64 PNG and JPEG images within an SVG. + [#601](https://github.com/lovell/sharp/issues/601) + [@dynamite-ready](https://github.com/dynamite-ready) + +* Ensure premultiply operation occurs before box filter shrink. + [#605](https://github.com/lovell/sharp/issues/605) + [@CmdrShepardsPie](https://github.com/CmdrShepardsPie) + [@teroparvinen](https://github.com/teroparvinen) + +* Add support for PNG and WebP tile-based output formats (in addition to JPEG). + [#622](https://github.com/lovell/sharp/pull/622) + [@ppaskaris](https://github.com/ppaskaris) + +* Allow use of extend with greyscale input. + [#623](https://github.com/lovell/sharp/pull/623) + [@ppaskaris](https://github.com/ppaskaris) + +* Allow non-RGB input to embed/extend onto background with an alpha channel. + [#646](https://github.com/lovell/sharp/issues/646) + [@DaGaMs](https://github.com/DaGaMs) diff --git a/docs/src/content/docs/changelog/v0.17.1.md b/docs/src/content/docs/changelog/v0.17.1.md new file mode 100644 index 00000000..28cf1216 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.17.1.md @@ -0,0 +1,15 @@ +--- +title: v0.17.1 - 15th January 2017 +slug: changelog/v0.17.1 +--- + +* Improve error messages for invalid parameters. + [@spikeon](https://github.com/spikeon) + [#644](https://github.com/lovell/sharp/pull/644) + +* Simplify expression for finding vips-cpp libdir. + [#656](https://github.com/lovell/sharp/pull/656) + +* Allow HTTPS-over-HTTP proxy when downloading pre-compiled dependencies. + [@wangzhiwei1888](https://github.com/wangzhiwei1888) + [#679](https://github.com/lovell/sharp/issues/679) diff --git a/docs/src/content/docs/changelog/v0.17.2.md b/docs/src/content/docs/changelog/v0.17.2.md new file mode 100644 index 00000000..02859307 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.17.2.md @@ -0,0 +1,12 @@ +--- +title: v0.17.2 - 11th February 2017 +slug: changelog/v0.17.2 +--- + +* Ensure Readable side of Stream can start flowing after Writable side has finished. + [#671](https://github.com/lovell/sharp/issues/671) + [@danhaller](https://github.com/danhaller) + +* Expose WebP alpha quality, lossless and near-lossless output options. + [#685](https://github.com/lovell/sharp/pull/685) + [@rnanwani](https://github.com/rnanwani) diff --git a/docs/src/content/docs/changelog/v0.17.3.md b/docs/src/content/docs/changelog/v0.17.3.md new file mode 100644 index 00000000..0bc48d94 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.17.3.md @@ -0,0 +1,20 @@ +--- +title: v0.17.3 - 1st April 2017 +slug: changelog/v0.17.3 +--- + +* Allow toBuffer to optionally resolve a Promise with both info and data. + [#143](https://github.com/lovell/sharp/issues/143) + [@salzhrani](https://github.com/salzhrani) + +* Create blank image of given width, height, channels and background. + [#470](https://github.com/lovell/sharp/issues/470) + [@pjarts](https://github.com/pjarts) + +* Add support for the "nearest" kernel for image reductions. + [#732](https://github.com/lovell/sharp/pull/732) + [@alice0meta](https://github.com/alice0meta) + +* Add support for TIFF compression and predictor options. + [#738](https://github.com/lovell/sharp/pull/738) + [@kristojorg](https://github.com/kristojorg) diff --git a/docs/src/content/docs/changelog/v0.18.0.md b/docs/src/content/docs/changelog/v0.18.0.md new file mode 100644 index 00000000..d8afbdd0 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.18.0.md @@ -0,0 +1,60 @@ +--- +title: v0.18.0 - 30th May 2017 +slug: changelog/v0.18.0 +--- + +* Remove the previously-deprecated output format "option" functions: + quality, progressive, compressionLevel, withoutAdaptiveFiltering, + withoutChromaSubsampling, trellisQuantisation, trellisQuantization, + overshootDeringing, optimiseScans and optimizeScans. + +* Ensure maximum output dimensions are based on the format to be used. + [#176](https://github.com/lovell/sharp/issues/176) + [@stephanebachelier](https://github.com/stephanebachelier) + +* Avoid costly (un)premultiply when using overlayWith without alpha channel. + [#573](https://github.com/lovell/sharp/issues/573) + [@strarsis](https://github.com/strarsis) + +* Include pixel depth (e.g. "uchar") when reading metadata. + [#577](https://github.com/lovell/sharp/issues/577) + [@moedusa](https://github.com/moedusa) + +* Add support for Buffer and Stream-based TIFF output. + [#587](https://github.com/lovell/sharp/issues/587) + [@strarsis](https://github.com/strarsis) + +* Expose warnings from libvips via NODE_DEBUG=sharp environment variable. + [#607](https://github.com/lovell/sharp/issues/607) + [@puzrin](https://github.com/puzrin) + +* Switch to the libvips implementation of "attention" and "entropy" crop strategies. + [#727](https://github.com/lovell/sharp/issues/727) + +* Improve performance and accuracy of nearest neighbour integral upsampling. + [#752](https://github.com/lovell/sharp/issues/752) + [@MrIbby](https://github.com/MrIbby) + +* Constructor single argument API: allow plain object, reject null/undefined. + [#768](https://github.com/lovell/sharp/issues/768) + [@kub1x](https://github.com/kub1x) + +* Ensure ARM64 pre-built binaries use correct C++11 ABI version. + [#772](https://github.com/lovell/sharp/issues/772) + [@ajiratech2](https://github.com/ajiratech2) + +* Prevent aliasing by using dynamic values for shrink(-on-load). + [#781](https://github.com/lovell/sharp/issues/781) + [@kleisauke](https://github.com/kleisauke) + +* Expose libvips' "squash" parameter to enable 1-bit TIFF output. + [#783](https://github.com/lovell/sharp/pull/783) + [@YvesBos](https://github.com/YvesBos) + +* Add support for rotation using any multiple of +/-90 degrees. + [#791](https://github.com/lovell/sharp/pull/791) + [@ncoden](https://github.com/ncoden) + +* Add "jpg" alias to toFormat as shortened form of "jpeg". + [#814](https://github.com/lovell/sharp/pull/814) + [@jingsam](https://github.com/jingsam) diff --git a/docs/src/content/docs/changelog/v0.18.1.md b/docs/src/content/docs/changelog/v0.18.1.md new file mode 100644 index 00000000..3121a9cf --- /dev/null +++ b/docs/src/content/docs/changelog/v0.18.1.md @@ -0,0 +1,8 @@ +--- +title: v0.18.1 - 30th May 2017 +slug: changelog/v0.18.1 +--- + +* Remove regression from #781 that could cause incorrect shrink calculation. + [#831](https://github.com/lovell/sharp/issues/831) + [@suprMax](https://github.com/suprMax) diff --git a/docs/src/content/docs/changelog/v0.18.2.md b/docs/src/content/docs/changelog/v0.18.2.md new file mode 100644 index 00000000..2eabf837 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.18.2.md @@ -0,0 +1,19 @@ +--- +title: v0.18.2 - 1st July 2017 +slug: changelog/v0.18.2 +--- + +* Expose libvips' xres and yres properties for TIFF output. + [#828](https://github.com/lovell/sharp/pull/828) + [@YvesBos](https://github.com/YvesBos) + +* Ensure flip and flop operations work with auto-rotate. + [#837](https://github.com/lovell/sharp/issues/837) + [@rexxars](https://github.com/rexxars) + +* Allow binary download URL override via SHARP_DIST_BASE_URL env variable. + [#841](https://github.com/lovell/sharp/issues/841) + +* Add support for Solus Linux. + [#857](https://github.com/lovell/sharp/pull/857) + [@ekremkaraca](https://github.com/ekremkaraca) diff --git a/docs/src/content/docs/changelog/v0.18.3.md b/docs/src/content/docs/changelog/v0.18.3.md new file mode 100644 index 00000000..ea66e811 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.18.3.md @@ -0,0 +1,12 @@ +--- +title: v0.18.3 - 13th September 2017 +slug: changelog/v0.18.3 +--- + +* Skip shrink-on-load when trimming. + [#888](https://github.com/lovell/sharp/pull/888) + [@kleisauke](https://github.com/kleisauke) + +* Migrate from got to simple-get for basic auth support. + [#945](https://github.com/lovell/sharp/pull/945) + [@pbomb](https://github.com/pbomb) diff --git a/docs/src/content/docs/changelog/v0.18.4.md b/docs/src/content/docs/changelog/v0.18.4.md new file mode 100644 index 00000000..002e06c2 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.18.4.md @@ -0,0 +1,8 @@ +--- +title: v0.18.4 - 18th September 2017 +slug: changelog/v0.18.4 +--- + +* Ensure input Buffer really is marked as Persistent, prevents mark-sweep GC. + [#950](https://github.com/lovell/sharp/issues/950) + [@lfdoherty](https://github.com/lfdoherty) diff --git a/docs/src/content/docs/changelog/v0.19.0.md b/docs/src/content/docs/changelog/v0.19.0.md new file mode 100644 index 00000000..d9ecfefc --- /dev/null +++ b/docs/src/content/docs/changelog/v0.19.0.md @@ -0,0 +1,46 @@ +--- +title: v0.19.0 - 11th January 2018 +slug: changelog/v0.19.0 +--- + +* Expose offset coordinates of strategy-based crop. + [#868](https://github.com/lovell/sharp/issues/868) + [@mirohristov-com](https://github.com/mirohristov-com) + +* PNG output now defaults to adaptiveFiltering=false, compressionLevel=9 + [#872](https://github.com/lovell/sharp/issues/872) + [@wmertens](https://github.com/wmertens) + +* Add stats feature for pixel-derived image statistics. + [#915](https://github.com/lovell/sharp/pull/915) + [@rnanwani](https://github.com/rnanwani) + +* Add failOnError option to fail-fast on bad input image data. + [#976](https://github.com/lovell/sharp/pull/976) + [@mceachen](https://github.com/mceachen) + +* Resize: switch to libvips' implementation, make fastShrinkOnLoad optional, remove interpolator and centreSampling options. + [#977](https://github.com/lovell/sharp/pull/977) + [@jardakotesovec](https://github.com/jardakotesovec) + +* Attach finish event listener to a clone only for Stream-based input. + [#995](https://github.com/lovell/sharp/issues/995) + [@whmountains](https://github.com/whmountains) + +* Add tilecache before smartcrop to avoid over-computation of previous operations. + [#1028](https://github.com/lovell/sharp/issues/1028) + [@coffeebite](https://github.com/coffeebite) + +* Prevent toFile extension taking precedence over requested format. + [#1037](https://github.com/lovell/sharp/issues/1037) + [@tomgallagher](https://github.com/tomgallagher) + +* Add support for gravity option to existing embed feature. + [#1038](https://github.com/lovell/sharp/pull/1038) + [@AzureByte](https://github.com/AzureByte) + +* Expose IPTC and XMP metadata when available. + [#1079](https://github.com/lovell/sharp/pull/1079) + [@oaleynik](https://github.com/oaleynik) + +* TIFF output: switch default predictor from 'none' to 'horizontal' to match libvips' behaviour. diff --git a/docs/src/content/docs/changelog/v0.19.1.md b/docs/src/content/docs/changelog/v0.19.1.md new file mode 100644 index 00000000..deeea20d --- /dev/null +++ b/docs/src/content/docs/changelog/v0.19.1.md @@ -0,0 +1,16 @@ +--- +title: v0.19.1 - 24th February 2018 +slug: changelog/v0.19.1 +--- + +* Expose libvips' linear transform feature. + [#1024](https://github.com/lovell/sharp/pull/1024) + [@3epnm](https://github.com/3epnm) + +* Expose angle option for tile-based output. + [#1121](https://github.com/lovell/sharp/pull/1121) + [@BiancoA](https://github.com/BiancoA) + +* Prevent crop operation when image already at or below target dimensions. + [#1134](https://github.com/lovell/sharp/issues/1134) + [@pieh](https://github.com/pieh) diff --git a/docs/src/content/docs/changelog/v0.20.0.md b/docs/src/content/docs/changelog/v0.20.0.md new file mode 100644 index 00000000..1f0bf56a --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.0.md @@ -0,0 +1,7 @@ +--- +title: v0.20.0 - 5th March 2018 +slug: changelog/v0.20.0 +--- + +* Add support for prebuilt sharp binaries on common platforms. + [#186](https://github.com/lovell/sharp/issues/186) diff --git a/docs/src/content/docs/changelog/v0.20.1.md b/docs/src/content/docs/changelog/v0.20.1.md new file mode 100644 index 00000000..f4af4314 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.1.md @@ -0,0 +1,15 @@ +--- +title: v0.20.1 - 17th March 2018 +slug: changelog/v0.20.1 +--- + +* Improve installation experience when a globally-installed libvips below the minimum required version is found. + [#1148](https://github.com/lovell/sharp/issues/1148) + +* Prevent smartcrop error when cumulative rounding is below target size. + [#1154](https://github.com/lovell/sharp/issues/1154) + [@ralrom](https://github.com/ralrom) + +* Expose libvips' median filter operation. + [#1161](https://github.com/lovell/sharp/pull/1161) + [@BiancoA](https://github.com/BiancoA) diff --git a/docs/src/content/docs/changelog/v0.20.2.md b/docs/src/content/docs/changelog/v0.20.2.md new file mode 100644 index 00000000..202d5c33 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.2.md @@ -0,0 +1,20 @@ +--- +title: v0.20.2 - 28th April 2018 +slug: changelog/v0.20.2 +--- + +* Add tint operation to set image chroma. + [#825](https://github.com/lovell/sharp/pull/825) + [@rikh42](https://github.com/rikh42) + +* Add environment variable to ignore globally-installed libvips. + [#1165](https://github.com/lovell/sharp/pull/1165) + [@oncletom](https://github.com/oncletom) + +* Add support for page selection with multi-page input (GIF/TIFF). + [#1204](https://github.com/lovell/sharp/pull/1204) + [@woolite64](https://github.com/woolite64) + +* Add support for Group4 (CCITTFAX4) compression with TIFF output. + [#1208](https://github.com/lovell/sharp/pull/1208) + [@woolite64](https://github.com/woolite64) diff --git a/docs/src/content/docs/changelog/v0.20.3.md b/docs/src/content/docs/changelog/v0.20.3.md new file mode 100644 index 00000000..b00c6491 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.3.md @@ -0,0 +1,8 @@ +--- +title: v0.20.3 - 29th May 2018 +slug: changelog/v0.20.3 +--- + +* Fix tint operation by ensuring LAB interpretation and allowing negative values. + [#1235](https://github.com/lovell/sharp/issues/1235) + [@wezside](https://github.com/wezside) diff --git a/docs/src/content/docs/changelog/v0.20.4.md b/docs/src/content/docs/changelog/v0.20.4.md new file mode 100644 index 00000000..a9580dea --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.4.md @@ -0,0 +1,12 @@ +--- +title: v0.20.4 - 20th June 2018 +slug: changelog/v0.20.4 +--- + +* Prevent possible rounding error when using shrink-on-load and 90/270 degree rotation. + [#1241](https://github.com/lovell/sharp/issues/1241) + [@anahit42](https://github.com/anahit42) + +* Ensure extractChannel sets correct single-channel colour space interpretation. + [#1257](https://github.com/lovell/sharp/issues/1257) + [@jeremychone](https://github.com/jeremychone) diff --git a/docs/src/content/docs/changelog/v0.20.5.md b/docs/src/content/docs/changelog/v0.20.5.md new file mode 100644 index 00000000..07f16614 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.5.md @@ -0,0 +1,8 @@ +--- +title: v0.20.5 - 27th June 2018 +slug: changelog/v0.20.5 +--- + +* Expose libjpeg optimize_coding flag. + [#1265](https://github.com/lovell/sharp/pull/1265) + [@tomlokhorst](https://github.com/tomlokhorst) diff --git a/docs/src/content/docs/changelog/v0.20.6.md b/docs/src/content/docs/changelog/v0.20.6.md new file mode 100644 index 00000000..284a67a2 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.6.md @@ -0,0 +1,33 @@ +--- +title: v0.20.6 - 20th August 2018 +slug: changelog/v0.20.6 +--- + +* Add removeAlpha operation to remove alpha channel, if any. + [#1248](https://github.com/lovell/sharp/issues/1248) + +* Expose mozjpeg quant_table flag. + [#1285](https://github.com/lovell/sharp/pull/1285) + [@rexxars](https://github.com/rexxars) + +* Allow full WebP alphaQuality range of 0-100. + [#1290](https://github.com/lovell/sharp/pull/1290) + [@sylvaindumont](https://github.com/sylvaindumont) + +* Cache libvips binaries to reduce re-install time. + [#1301](https://github.com/lovell/sharp/issues/1301) + +* Ensure vendor platform mismatch throws error at install time. + [#1303](https://github.com/lovell/sharp/issues/1303) + +* Improve install time error messages for FreeBSD users. + [#1310](https://github.com/lovell/sharp/issues/1310) + +* Ensure extractChannel works with 16-bit images. + [#1330](https://github.com/lovell/sharp/issues/1330) + +* Expose depth option for tile-based output. + [#1342](https://github.com/lovell/sharp/pull/1342) + [@alundavies](https://github.com/alundavies) + +* Add experimental entropy field to stats response. diff --git a/docs/src/content/docs/changelog/v0.20.7.md b/docs/src/content/docs/changelog/v0.20.7.md new file mode 100644 index 00000000..e9503a29 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.7.md @@ -0,0 +1,7 @@ +--- +title: v0.20.7 - 21st August 2018 +slug: changelog/v0.20.7 +--- + +* Use copy+unlink if rename operation fails during installation. + [#1345](https://github.com/lovell/sharp/issues/1345) diff --git a/docs/src/content/docs/changelog/v0.20.8.md b/docs/src/content/docs/changelog/v0.20.8.md new file mode 100644 index 00000000..8ab9a062 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.20.8.md @@ -0,0 +1,12 @@ +--- +title: v0.20.8 - 5th September 2018 +slug: changelog/v0.20.8 +--- + +* Avoid race conditions when creating directories during installation. + [#1358](https://github.com/lovell/sharp/pull/1358) + [@ajhool](https://github.com/ajhool) + +* Accept floating point values for input density parameter. + [#1362](https://github.com/lovell/sharp/pull/1362) + [@aeirola](https://github.com/aeirola) diff --git a/docs/src/content/docs/changelog/v0.21.0.md b/docs/src/content/docs/changelog/v0.21.0.md new file mode 100644 index 00000000..762cc65a --- /dev/null +++ b/docs/src/content/docs/changelog/v0.21.0.md @@ -0,0 +1,39 @@ +--- +title: v0.21.0 - 4th October 2018 +slug: changelog/v0.21.0 +--- + +* Deprecate the following resize-related functions: + `crop`, `embed`, `ignoreAspectRatio`, `max`, `min` and `withoutEnlargement`. + Access to these is now via options passed to the `resize` function. + For example: + `embed('north')` is now `resize(width, height, { fit: 'contain', position: 'north' })`, + `crop('attention')` is now `resize(width, height, { fit: 'cover', position: 'attention' })`, + `max().withoutEnlargement()` is now `resize(width, height, { fit: 'inside', withoutEnlargement: true })`. + [#1135](https://github.com/lovell/sharp/issues/1135) + +* Deprecate the `background` function. + Per-operation `background` options added to `resize`, `extend` and `flatten` operations. + [#1392](https://github.com/lovell/sharp/issues/1392) + +* Add `size` to `metadata` response (Stream and Buffer input only). + [#695](https://github.com/lovell/sharp/issues/695) + +* Switch from custom trim operation to `vips_find_trim`. + [#914](https://github.com/lovell/sharp/issues/914) + +* Add `chromaSubsampling` and `isProgressive` properties to `metadata` response. + [#1186](https://github.com/lovell/sharp/issues/1186) + +* Drop Node 4 support. + [#1212](https://github.com/lovell/sharp/issues/1212) + +* Enable SIMD convolution by default. + [#1213](https://github.com/lovell/sharp/issues/1213) + +* Add experimental prebuilt binaries for musl-based Linux. + [#1379](https://github.com/lovell/sharp/issues/1379) + +* Add support for arbitrary rotation angle via vips_rotate. + [#1385](https://github.com/lovell/sharp/pull/1385) + [@freezy](https://github.com/freezy) diff --git a/docs/src/content/docs/changelog/v0.21.1.md b/docs/src/content/docs/changelog/v0.21.1.md new file mode 100644 index 00000000..bb685ef2 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.21.1.md @@ -0,0 +1,31 @@ +--- +title: v0.21.1 - 7th December 2018 +slug: changelog/v0.21.1 +--- + +* Install: support `sharp_dist_base_url` npm config, like existing `SHARP_DIST_BASE_URL`. + [#1422](https://github.com/lovell/sharp/pull/1422) + [@SethWen](https://github.com/SethWen) + +* Ensure `channel` metadata is correct for raw, greyscale output. + [#1425](https://github.com/lovell/sharp/issues/1425) + +* Add support for the "mitchell" kernel for image reductions. + [#1438](https://github.com/lovell/sharp/pull/1438) + [@Daiz](https://github.com/Daiz) + +* Allow separate parameters for gamma encoding and decoding. + [#1439](https://github.com/lovell/sharp/pull/1439) + [@Daiz](https://github.com/Daiz) + +* Build prototype with `Object.assign` to allow minification. + [#1475](https://github.com/lovell/sharp/pull/1475) + [@jaubourg](https://github.com/jaubourg) + +* Expose libvips' recombination matrix operation. + [#1477](https://github.com/lovell/sharp/pull/1477) + [@fromkeith](https://github.com/fromkeith) + +* Expose libvips' pyramid/tile options for TIFF output. + [#1483](https://github.com/lovell/sharp/pull/1483) + [@mbklein](https://github.com/mbklein) diff --git a/docs/src/content/docs/changelog/v0.21.2.md b/docs/src/content/docs/changelog/v0.21.2.md new file mode 100644 index 00000000..be7f6758 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.21.2.md @@ -0,0 +1,27 @@ +--- +title: v0.21.2 - 13th January 2019 +slug: changelog/v0.21.2 +--- + +* Ensure all metadata is removed from PNG output unless `withMetadata` used. + +* Ensure shortest edge is at least one pixel after resizing. + [#1003](https://github.com/lovell/sharp/issues/1003) + +* Add `ensureAlpha` operation to add an alpha channel, if missing. + [#1153](https://github.com/lovell/sharp/issues/1153) + +* Expose `pages` and `pageHeight` metadata for multi-page input images. + [#1205](https://github.com/lovell/sharp/issues/1205) + +* Expose PNG output options requiring libimagequant. + [#1484](https://github.com/lovell/sharp/issues/1484) + +* Expose underlying error message for invalid input. + [#1505](https://github.com/lovell/sharp/issues/1505) + +* Prevent mutatation of options passed to `jpeg`. + [#1516](https://github.com/lovell/sharp/issues/1516) + +* Ensure forced output format applied correctly when output chaining. + [#1528](https://github.com/lovell/sharp/issues/1528) diff --git a/docs/src/content/docs/changelog/v0.21.3.md b/docs/src/content/docs/changelog/v0.21.3.md new file mode 100644 index 00000000..1cde28c6 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.21.3.md @@ -0,0 +1,9 @@ +--- +title: v0.21.3 - 19th January 2019 +slug: changelog/v0.21.3 +--- + +* Input image decoding now fails fast, set `failOnError` to change this behaviour. + +* Failed filesystem-based input now separates missing file and invalid format errors. + [#1542](https://github.com/lovell/sharp/issues/1542) diff --git a/docs/src/content/docs/changelog/v0.22.0.md b/docs/src/content/docs/changelog/v0.22.0.md new file mode 100644 index 00000000..797c743b --- /dev/null +++ b/docs/src/content/docs/changelog/v0.22.0.md @@ -0,0 +1,20 @@ +--- +title: v0.22.0 - 18th March 2019 +slug: changelog/v0.22.0 +--- + +* Remove functions previously deprecated in v0.21.0: + `background`, `crop`, `embed`, `ignoreAspectRatio`, `max`, `min` and `withoutEnlargement`. + +* Add `composite` operation supporting multiple images and blend modes; deprecate `overlayWith`. + [#728](https://github.com/lovell/sharp/issues/728) + +* Add support for `pages` input option for multi-page input. + [#1566](https://github.com/lovell/sharp/issues/1566) + +* Allow Stream-based input of raw pixel data. + [#1579](https://github.com/lovell/sharp/issues/1579) + +* Add support for `page` input option to GIF and PDF. + [#1595](https://github.com/lovell/sharp/pull/1595) + [@ramiel](https://github.com/ramiel) diff --git a/docs/src/content/docs/changelog/v0.22.1.md b/docs/src/content/docs/changelog/v0.22.1.md new file mode 100644 index 00000000..cf8e3d46 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.22.1.md @@ -0,0 +1,15 @@ +--- +title: v0.22.1 - 25th April 2019 +slug: changelog/v0.22.1 +--- + +* Add `modulate` operation for brightness, saturation and hue. + [#1601](https://github.com/lovell/sharp/pull/1601) + [@Goues](https://github.com/Goues) + +* Improve help messaging should `require("sharp")` fail. + [#1638](https://github.com/lovell/sharp/pull/1638) + [@sidharthachatterjee](https://github.com/sidharthachatterjee) + +* Add support for Node 12. + [#1668](https://github.com/lovell/sharp/issues/1668) diff --git a/docs/src/content/docs/changelog/v0.23.0.md b/docs/src/content/docs/changelog/v0.23.0.md new file mode 100644 index 00000000..24b18827 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.23.0.md @@ -0,0 +1,32 @@ +--- +title: v0.23.0 - 29th July 2019 +slug: changelog/v0.23.0 +--- + +* Remove `overlayWith` previously deprecated in v0.22.0. + +* Add experimental support for HEIF images. Requires libvips compiled with libheif. + [#1105](https://github.com/lovell/sharp/issues/1105) + +* Expose libwebp `smartSubsample` and `reductionEffort` options. + [#1545](https://github.com/lovell/sharp/issues/1545) + +* Add experimental support for Worker Threads. + [#1558](https://github.com/lovell/sharp/issues/1558) + +* Use libvips' built-in CMYK and sRGB profiles when required. + [#1619](https://github.com/lovell/sharp/issues/1619) + +* Drop support for Node.js versions 6 and 11. + [#1674](https://github.com/lovell/sharp/issues/1674) + +* Expose `skipBlanks` option for tile-based output. + [#1687](https://github.com/lovell/sharp/pull/1687) + [@RaboliotTheGrey](https://github.com/RaboliotTheGrey) + +* Allow use of `failOnError` option with Stream-based input. + [#1691](https://github.com/lovell/sharp/issues/1691) + +* Fix rotate/extract ordering for non-90 angles. + [#1755](https://github.com/lovell/sharp/pull/1755) + [@iovdin](https://github.com/iovdin) diff --git a/docs/src/content/docs/changelog/v0.23.1.md b/docs/src/content/docs/changelog/v0.23.1.md new file mode 100644 index 00000000..c180d995 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.23.1.md @@ -0,0 +1,24 @@ +--- +title: v0.23.1 - 26th September 2019 +slug: changelog/v0.23.1 +--- + +* Ensure `sharp.format.vips` is present and correct (filesystem only). + [#1813](https://github.com/lovell/sharp/issues/1813) + +* Ensure invalid `width` and `height` provided as options to `resize` throw. + [#1817](https://github.com/lovell/sharp/issues/1817) + +* Allow use of 'heic' and 'heif' identifiers with `toFormat`. + [#1834](https://github.com/lovell/sharp/pull/1834) + [@jaubourg](https://github.com/jaubourg) + +* Add `premultiplied` option to `composite` operation. + [#1835](https://github.com/lovell/sharp/pull/1835) + [@Andargor](https://github.com/Andargor) + +* Allow instance reuse with differing `toBuffer` options. + [#1860](https://github.com/lovell/sharp/pull/1860) + [@RaboliotTheGrey](https://github.com/RaboliotTheGrey) + +* Ensure image is at least 3x3 pixels before attempting trim operation. diff --git a/docs/src/content/docs/changelog/v0.23.2.md b/docs/src/content/docs/changelog/v0.23.2.md new file mode 100644 index 00000000..1eb59491 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.23.2.md @@ -0,0 +1,12 @@ +--- +title: v0.23.2 - 28th October 2019 +slug: changelog/v0.23.2 +--- + +* Add `background` option to tile output operation. + [#1924](https://github.com/lovell/sharp/pull/1924) + [@neave](https://github.com/neave) + +* Add support for Node.js 13. + [#1932](https://github.com/lovell/sharp/pull/1932) + [@MayhemYDG](https://github.com/MayhemYDG) diff --git a/docs/src/content/docs/changelog/v0.23.3.md b/docs/src/content/docs/changelog/v0.23.3.md new file mode 100644 index 00000000..4c19795a --- /dev/null +++ b/docs/src/content/docs/changelog/v0.23.3.md @@ -0,0 +1,18 @@ +--- +title: v0.23.3 - 17th November 2019 +slug: changelog/v0.23.3 +--- + +* Ensure `trim` operation supports images contained in the alpha channel. + [#1597](https://github.com/lovell/sharp/issues/1597) + +* Ensure tile `overlap` option works as expected. + [#1921](https://github.com/lovell/sharp/pull/1921) + [@rustyguts](https://github.com/rustyguts) + +* Allow compilation on FreeBSD and variants (broken since v0.23.0) + [#1952](https://github.com/lovell/sharp/pull/1952) + [@pouya-eghbali](https://github.com/pouya-eghbali) + +* Ensure `modulate` and other colour-based operations can co-exist. + [#1958](https://github.com/lovell/sharp/issues/1958) diff --git a/docs/src/content/docs/changelog/v0.23.4.md b/docs/src/content/docs/changelog/v0.23.4.md new file mode 100644 index 00000000..3d8bfed7 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.23.4.md @@ -0,0 +1,12 @@ +--- +title: v0.23.4 - 5th December 2019 +slug: changelog/v0.23.4 +--- + +* Handle zero-length Buffer objects when using Node.js v13.2.0+. + +* Expose raw TIFFTAG_PHOTOSHOP metadata. + [#1600](https://github.com/lovell/sharp/issues/1600) + +* Improve thread safety by using copy-on-write when updating metadata. + [#1986](https://github.com/lovell/sharp/issues/1986) diff --git a/docs/src/content/docs/changelog/v0.24.0.md b/docs/src/content/docs/changelog/v0.24.0.md new file mode 100644 index 00000000..378dad77 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.24.0.md @@ -0,0 +1,28 @@ +--- +title: v0.24.0 - 16th January 2020 +slug: changelog/v0.24.0 +--- + +* Drop support for Node.js 8. + [#1910](https://github.com/lovell/sharp/issues/1910) + +* Drop support for undefined input where options also provided. + [#1768](https://github.com/lovell/sharp/issues/1768) + +* Move `limitInputPixels` and `sequentialRead` to input options, deprecating functions of the same name. + +* Expose `delay` and `loop` metadata for animated images. + [#1905](https://github.com/lovell/sharp/issues/1905) + +* Ensure correct colour output for 16-bit, 2-channel PNG input with ICC profile. + [#2013](https://github.com/lovell/sharp/issues/2013) + +* Prevent use of sequentialRead for rotate operations. + [#2016](https://github.com/lovell/sharp/issues/2016) + +* Correctly bind max width and height values when using withoutEnlargement. + [#2024](https://github.com/lovell/sharp/pull/2024) + [@BrychanOdlum](https://github.com/BrychanOdlum) + +* Add support for input with 16-bit RGB profile. + [#2037](https://github.com/lovell/sharp/issues/2037) diff --git a/docs/src/content/docs/changelog/v0.24.1.md b/docs/src/content/docs/changelog/v0.24.1.md new file mode 100644 index 00000000..2155c200 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.24.1.md @@ -0,0 +1,10 @@ +--- +title: v0.24.1 - 15th February 2020 +slug: changelog/v0.24.1 +--- + +* Prevent use of sequentialRead for EXIF-based rotate operation. + [#2042](https://github.com/lovell/sharp/issues/2042) + +* Ensure RGBA LZW TIFF returns correct channel count. + [#2064](https://github.com/lovell/sharp/issues/2064) diff --git a/docs/src/content/docs/changelog/v0.25.0.md b/docs/src/content/docs/changelog/v0.25.0.md new file mode 100644 index 00000000..b42978a9 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.25.0.md @@ -0,0 +1,18 @@ +--- +title: v0.25.0 - 7th March 2020 +slug: changelog/v0.25.0 +--- + +* Remove `limitInputPixels` and `sequentialRead` previously deprecated in v0.24.0. + +* Migrate internals to N-API. + [#1282](https://github.com/lovell/sharp/issues/1282) + +* Add support for 32-bit Windows. + [#2088](https://github.com/lovell/sharp/issues/2088) + +* Ensure correct ordering of rotate-then-trim operations. + [#2087](https://github.com/lovell/sharp/issues/2087) + +* Ensure composite accepts `limitInputPixels` and `sequentialRead` input options. + [#2099](https://github.com/lovell/sharp/issues/2099) diff --git a/docs/src/content/docs/changelog/v0.25.1.md b/docs/src/content/docs/changelog/v0.25.1.md new file mode 100644 index 00000000..af0fe39d --- /dev/null +++ b/docs/src/content/docs/changelog/v0.25.1.md @@ -0,0 +1,7 @@ +--- +title: v0.25.1 - 7th March 2020 +slug: changelog/v0.25.1 +--- + +* Ensure prebuilt binaries are fetched based on N-API version. + [#2117](https://github.com/lovell/sharp/issues/2117) diff --git a/docs/src/content/docs/changelog/v0.25.2.md b/docs/src/content/docs/changelog/v0.25.2.md new file mode 100644 index 00000000..298db561 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.25.2.md @@ -0,0 +1,19 @@ +--- +title: v0.25.2 - 20th March 2020 +slug: changelog/v0.25.2 +--- + +* Provide prebuilt binaries for Linux ARM64v8. + +* Add IIIF layout support to tile-based output. + [#2098](https://github.com/lovell/sharp/pull/2098) + [@edsilv](https://github.com/edsilv) + +* Ensure input options are consistently and correctly detected. + [#2118](https://github.com/lovell/sharp/issues/2118) + +* Ensure N-API prebuilt binaries work on RHEL7 and its derivatives. + [#2119](https://github.com/lovell/sharp/issues/2119) + +* Ensure AsyncWorker options are persisted. + [#2130](https://github.com/lovell/sharp/issues/2130) diff --git a/docs/src/content/docs/changelog/v0.25.3.md b/docs/src/content/docs/changelog/v0.25.3.md new file mode 100644 index 00000000..0a1a7603 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.25.3.md @@ -0,0 +1,14 @@ +--- +title: v0.25.3 - 17th May 2020 +slug: changelog/v0.25.3 +--- + +* Ensure libvips is initialised only once, improves worker thread safety. + [#2143](https://github.com/lovell/sharp/issues/2143) + +* Ensure npm platform flag is respected when copying DLLs. + [#2188](https://github.com/lovell/sharp/pull/2188) + [@dimadeveatii](https://github.com/dimadeveatii) + +* Allow SVG input with large inline images to be parsed. + [#2195](https://github.com/lovell/sharp/issues/2195) diff --git a/docs/src/content/docs/changelog/v0.25.4.md b/docs/src/content/docs/changelog/v0.25.4.md new file mode 100644 index 00000000..6bd4deb5 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.25.4.md @@ -0,0 +1,25 @@ +--- +title: v0.25.4 - 12th June 2020 +slug: changelog/v0.25.4 +--- + +* Allow libvips binary location override where version is appended. + [#2217](https://github.com/lovell/sharp/pull/2217) + [@malice00](https://github.com/malice00) + +* Enable PNG palette when setting quality, colours, colors or dither. + [#2226](https://github.com/lovell/sharp/pull/2226) + [@romaleev](https://github.com/romaleev) + +* Add `level` constructor option to use a specific level of a multi-level image. + Expose `levels` metadata for multi-level images. + [#2222](https://github.com/lovell/sharp/issues/2222) + +* Add support for named `alpha` channel to `extractChannel` operation. + [#2138](https://github.com/lovell/sharp/issues/2138) + +* Add experimental `sharpness` calculation to `stats()` response. + [#2251](https://github.com/lovell/sharp/issues/2251) + +* Emit `warning` event for non-critical processing problems. + [#2032](https://github.com/lovell/sharp/issues/2032) diff --git a/docs/src/content/docs/changelog/v0.26.0.md b/docs/src/content/docs/changelog/v0.26.0.md new file mode 100644 index 00000000..6fedd7e3 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.26.0.md @@ -0,0 +1,33 @@ +--- +title: v0.26.0 - 25th August 2020 +slug: changelog/v0.26.0 +--- + +* Prebuilt libvips binaries are now statically-linked and Brotli-compressed, requiring Node.js 10.16.0+. + +* TIFF output `squash` is replaced by `bitdepth` to reduce to 1, 2 or 4 bit. + +* JPEG output `quality` >= 90 no longer automatically sets `chromaSubsampling` to `4:4:4`. + +* Add most `dominant` colour to image `stats`. + [#640](https://github.com/lovell/sharp/issues/640) + +* Add support for animated GIF (requires \*magick) and WebP output. + [#2012](https://github.com/lovell/sharp/pull/2012) + [@deftomat](https://github.com/deftomat) + +* Add support for libvips ImageMagick v7 loaders. + [#2258](https://github.com/lovell/sharp/pull/2258) + [@vouillon](https://github.com/vouillon) + +* Allow multi-page input via \*magick. + [#2259](https://github.com/lovell/sharp/pull/2259) + [@vouillon](https://github.com/vouillon) + +* Add support to `withMetadata` for custom ICC profile. + [#2271](https://github.com/lovell/sharp/pull/2271) + [@roborourke](https://github.com/roborourke) + +* Ensure prebuilt binaries for ARM default to v7 when using Electron. + [#2292](https://github.com/lovell/sharp/pull/2292) + [@diegodev3](https://github.com/diegodev3) diff --git a/docs/src/content/docs/changelog/v0.26.1.md b/docs/src/content/docs/changelog/v0.26.1.md new file mode 100644 index 00000000..080b05da --- /dev/null +++ b/docs/src/content/docs/changelog/v0.26.1.md @@ -0,0 +1,22 @@ +--- +title: v0.26.1 - 20th September 2020 +slug: changelog/v0.26.1 +--- + +* Ensure correct pageHeight when verifying multi-page image dimensions. + [#2343](https://github.com/lovell/sharp/pull/2343) + [@derom](https://github.com/derom) + +* Allow input density range up to 100000 DPI. + [#2348](https://github.com/lovell/sharp/pull/2348) + [@stefanprobst](https://github.com/stefanprobst) + +* Ensure animation-related properties can be set for Stream-based input. + [#2369](https://github.com/lovell/sharp/pull/2369) + [@AcrylicShrimp](https://github.com/AcrylicShrimp) + +* Ensure `stats` can be calculated for 1x1 input. + [#2372](https://github.com/lovell/sharp/issues/2372) + +* Ensure animated GIF output is optimised. + [#2376](https://github.com/lovell/sharp/issues/2376) diff --git a/docs/src/content/docs/changelog/v0.26.2.md b/docs/src/content/docs/changelog/v0.26.2.md new file mode 100644 index 00000000..2031300a --- /dev/null +++ b/docs/src/content/docs/changelog/v0.26.2.md @@ -0,0 +1,15 @@ +--- +title: v0.26.2 - 14th October 2020 +slug: changelog/v0.26.2 +--- + +* Add support for EXR input. Requires libvips compiled with OpenEXR. + [#698](https://github.com/lovell/sharp/issues/698) + +* Ensure support for yarn v2. + [#2379](https://github.com/lovell/sharp/pull/2379) + [@jalovatt](https://github.com/jalovatt) + +* Add centre/center option to tile-based output. + [#2397](https://github.com/lovell/sharp/pull/2397) + [@beig](https://github.com/beig) diff --git a/docs/src/content/docs/changelog/v0.26.3.md b/docs/src/content/docs/changelog/v0.26.3.md new file mode 100644 index 00000000..a12a5448 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.26.3.md @@ -0,0 +1,12 @@ +--- +title: v0.26.3 - 16th November 2020 +slug: changelog/v0.26.3 +--- + +* Expose libvips' affine operation. + [#2336](https://github.com/lovell/sharp/pull/2336) + [@guillevc](https://github.com/guillevc) + +* Fallback to tar.gz for prebuilt libvips when Brotli not available. + [#2412](https://github.com/lovell/sharp/pull/2412) + [@ascorbic](https://github.com/ascorbic) diff --git a/docs/src/content/docs/changelog/v0.27.0.md b/docs/src/content/docs/changelog/v0.27.0.md new file mode 100644 index 00000000..d2137847 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.27.0.md @@ -0,0 +1,15 @@ +--- +title: v0.27.0 - 22nd December 2020 +slug: changelog/v0.27.0 +--- + +* Add support for AVIF to prebuilt binaries. + +* Remove experimental status from `heif` output, defaults are now AVIF-centric. + +* Allow negative top/left offsets for composite operation. + [#2391](https://github.com/lovell/sharp/pull/2391) + [@CurosMJ](https://github.com/CurosMJ) + +* Ensure all platforms use fontconfig for font rendering. + [#2399](https://github.com/lovell/sharp/issues/2399) diff --git a/docs/src/content/docs/changelog/v0.27.1.md b/docs/src/content/docs/changelog/v0.27.1.md new file mode 100644 index 00000000..09b24da6 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.27.1.md @@ -0,0 +1,19 @@ +--- +title: v0.27.1 - 27th January 2021 +slug: changelog/v0.27.1 +--- + +* Ensure TIFF is cast when using float predictor. + [#2502](https://github.com/lovell/sharp/pull/2502) + [@randyridge](https://github.com/randyridge) + +* Add support for Uint8Array and Uint8ClampedArray input. + [#2511](https://github.com/lovell/sharp/pull/2511) + [@leon](https://github.com/leon) + +* Revert: ensure all platforms use fontconfig for font rendering. + [#2515](https://github.com/lovell/sharp/issues/2515) + +* Expose libvips gaussnoise operation to allow creation of Gaussian noise. + [#2527](https://github.com/lovell/sharp/pull/2527) + [@alza54](https://github.com/alza54) diff --git a/docs/src/content/docs/changelog/v0.27.2.md b/docs/src/content/docs/changelog/v0.27.2.md new file mode 100644 index 00000000..b8eb9c38 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.27.2.md @@ -0,0 +1,20 @@ +--- +title: v0.27.2 - 22nd February 2021 +slug: changelog/v0.27.2 +--- + +* macOS: Prevent use of globally-installed ARM64 libvips with Rosetta x64 emulation. + [#2460](https://github.com/lovell/sharp/issues/2460) + +* Linux (musl): Prevent use of prebuilt linuxmusl-x64 binaries with musl >= 1.2.0. + [#2570](https://github.com/lovell/sharp/issues/2570) + +* Improve 16-bit grey+alpha support by using libvips' `has_alpha` detection. + [#2569](https://github.com/lovell/sharp/issues/2569) + +* Allow the use of non lower case extensions with `toFormat`. + [#2581](https://github.com/lovell/sharp/pull/2581) + [@florian-busch](https://github.com/florian-busch) + +* Allow use of `recomb` operation with single channel input. + [#2584](https://github.com/lovell/sharp/issues/2584) diff --git a/docs/src/content/docs/changelog/v0.28.0.md b/docs/src/content/docs/changelog/v0.28.0.md new file mode 100644 index 00000000..e3a72f81 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.28.0.md @@ -0,0 +1,32 @@ +--- +title: v0.28.0 - 29th March 2021 +slug: changelog/v0.28.0 +--- + +* Prebuilt binaries now include mozjpeg and libimagequant (BSD 2-Clause). + +* Prebuilt binaries limit AVIF support to the most common 8-bit depth. + +* Add `mozjpeg` option to `jpeg` method, sets mozjpeg defaults. + +* Reduce the default PNG `compressionLevel` to the more commonly used 6. + +* Reduce concurrency on glibc-based Linux when using the default memory allocator to help prevent fragmentation. + +* Default missing edge properties of extend operation to zero. + [#2578](https://github.com/lovell/sharp/issues/2578) + +* Ensure composite does not clip top and left offsets. + [#2594](https://github.com/lovell/sharp/pull/2594) + [@SHG42](https://github.com/SHG42) + +* Improve error handling of network failure at install time. + [#2608](https://github.com/lovell/sharp/pull/2608) + [@abradley](https://github.com/abradley) + +* Ensure `@id` attribute can be set for IIIF tile-based output. + [#2612](https://github.com/lovell/sharp/issues/2612) + [@edsilv](https://github.com/edsilv) + +* Ensure composite replicates the correct number of tiles for centred gravities. + [#2626](https://github.com/lovell/sharp/issues/2626) diff --git a/docs/src/content/docs/changelog/v0.28.1.md b/docs/src/content/docs/changelog/v0.28.1.md new file mode 100644 index 00000000..38e11a38 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.28.1.md @@ -0,0 +1,15 @@ +--- +title: v0.28.1 - 5th April 2021 +slug: changelog/v0.28.1 +--- + +* Ensure all installation errors are logged with a more obvious prefix. + +* Allow `withMetadata` to set and update EXIF metadata. + [#650](https://github.com/lovell/sharp/issues/650) + +* Add support for OME-TIFF Sub Image File Directories (subIFD). + [#2557](https://github.com/lovell/sharp/issues/2557) + +* Allow `ensureAlpha` to set the alpha transparency level. + [#2634](https://github.com/lovell/sharp/issues/2634) diff --git a/docs/src/content/docs/changelog/v0.28.2.md b/docs/src/content/docs/changelog/v0.28.2.md new file mode 100644 index 00000000..9f067c44 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.28.2.md @@ -0,0 +1,26 @@ +--- +title: v0.28.2 - 10th May 2021 +slug: changelog/v0.28.2 +--- + +* Allow `withMetadata` to set `density`. + [#967](https://github.com/lovell/sharp/issues/967) + +* Skip shrink-on-load where one dimension <4px. + [#2653](https://github.com/lovell/sharp/issues/2653) + +* Allow escaped proxy credentials. + [#2664](https://github.com/lovell/sharp/pull/2664) + [@msalettes](https://github.com/msalettes) + +* Add `premultiplied` flag for raw pixel data input. + [#2685](https://github.com/lovell/sharp/pull/2685) + [@mnutt](https://github.com/mnutt) + +* Detect empty input and throw a helpful error. + [#2687](https://github.com/lovell/sharp/pull/2687) + [@JakobJingleheimer](https://github.com/JakobJingleheimer) + +* Add install-time flag to skip version compatibility checks. + [#2692](https://github.com/lovell/sharp/pull/2692) + [@xemle](https://github.com/xemle) diff --git a/docs/src/content/docs/changelog/v0.28.3.md b/docs/src/content/docs/changelog/v0.28.3.md new file mode 100644 index 00000000..dff93326 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.28.3.md @@ -0,0 +1,13 @@ +--- +title: v0.28.3 - 24th May 2021 +slug: changelog/v0.28.3 +--- + +* Ensure presence of libvips, vendored or global, before invoking node-gyp. + +* Skip shrink-on-load for multi-page WebP. + [#2714](https://github.com/lovell/sharp/issues/2714) + +* Add contrast limiting adaptive histogram equalization (CLAHE) operator. + [#2726](https://github.com/lovell/sharp/pull/2726) + [@baparham](https://github.com/baparham) diff --git a/docs/src/content/docs/changelog/v0.29.0.md b/docs/src/content/docs/changelog/v0.29.0.md new file mode 100644 index 00000000..08754599 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.29.0.md @@ -0,0 +1,35 @@ +--- +title: v0.29.0 - 17th August 2021 +slug: changelog/v0.29.0 +--- + +* Drop support for Node.js 10, now requires Node.js >= 12.13.0. + +* Add `background` property to PNG and GIF image metadata. + +* Add `compression` property to HEIF image metadata. + [#2504](https://github.com/lovell/sharp/issues/2504) + +* AVIF encoding now defaults to `4:4:4` chroma subsampling. + [#2562](https://github.com/lovell/sharp/issues/2562) + +* Allow multiple platform-arch binaries in same `node_modules` installation tree. + [#2575](https://github.com/lovell/sharp/issues/2575) + +* Default to single-channel `b-w` space when `extractChannel` is used. + [#2658](https://github.com/lovell/sharp/issues/2658) + +* Allow installation directory to contain spaces (regression in v0.26.0). + [#2777](https://github.com/lovell/sharp/issues/2777) + +* Add `pipelineColourspace` operator to set the processing space. + [#2704](https://github.com/lovell/sharp/pull/2704) + [@Daiz](https://github.com/Daiz) + +* Allow bit depth to be set when using raw input and output. + [#2762](https://github.com/lovell/sharp/pull/2762) + [@mart-jansink](https://github.com/mart-jansink) + +* Allow `negate` to act only on non-alpha channels. + [#2808](https://github.com/lovell/sharp/pull/2808) + [@rexxars](https://github.com/rexxars) diff --git a/docs/src/content/docs/changelog/v0.29.1.md b/docs/src/content/docs/changelog/v0.29.1.md new file mode 100644 index 00000000..58809cbf --- /dev/null +++ b/docs/src/content/docs/changelog/v0.29.1.md @@ -0,0 +1,30 @@ +--- +title: v0.29.1 - 7th September 2021 +slug: changelog/v0.29.1 +--- + +* Add `lightness` option to `modulate` operation. + [#2846](https://github.com/lovell/sharp/pull/2846) + +* Ensure correct PNG bitdepth is set based on number of colours. + [#2855](https://github.com/lovell/sharp/issues/2855) + +* Ensure background is always premultiplied when compositing. + [#2858](https://github.com/lovell/sharp/issues/2858) + +* Ensure images with P3 profiles retain full gamut. + [#2862](https://github.com/lovell/sharp/issues/2862) + +* Add support for libvips compiled with OpenJPEG. + [#2868](https://github.com/lovell/sharp/pull/2868) + +* Remove unsupported animation properties from AVIF output. + [#2870](https://github.com/lovell/sharp/issues/2870) + +* Resolve paths before comparing input/output filenames. + [#2878](https://github.com/lovell/sharp/pull/2878) + [@rexxars](https://github.com/rexxars) + +* Allow use of speed 9 (fastest) for HEIF encoding. + [#2879](https://github.com/lovell/sharp/pull/2879) + [@rexxars](https://github.com/rexxars) diff --git a/docs/src/content/docs/changelog/v0.29.2.md b/docs/src/content/docs/changelog/v0.29.2.md new file mode 100644 index 00000000..0628963f --- /dev/null +++ b/docs/src/content/docs/changelog/v0.29.2.md @@ -0,0 +1,22 @@ +--- +title: v0.29.2 - 21st October 2021 +slug: changelog/v0.29.2 +--- + +* Add `timeout` function to limit processing time. + +* Ensure `sharp.versions` is populated from vendored libvips. + +* Remove animation properties from single page images. + [#2890](https://github.com/lovell/sharp/issues/2890) + +* Allow use of 'tif' to select TIFF output. + [#2893](https://github.com/lovell/sharp/pull/2893) + [@erf](https://github.com/erf) + +* Improve error message on Windows for version conflict. + [#2918](https://github.com/lovell/sharp/pull/2918) + [@dkrnl](https://github.com/dkrnl) + +* Throw error rather than exit when invalid binaries detected. + [#2931](https://github.com/lovell/sharp/issues/2931) diff --git a/docs/src/content/docs/changelog/v0.29.3.md b/docs/src/content/docs/changelog/v0.29.3.md new file mode 100644 index 00000000..e344d790 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.29.3.md @@ -0,0 +1,11 @@ +--- +title: v0.29.3 - 14th November 2021 +slug: changelog/v0.29.3 +--- + +* Ensure correct dimensions when containing image resized to 1px. + [#2951](https://github.com/lovell/sharp/issues/2951) + +* Impute TIFF `xres`/`yres` from `density` provided to `withMetadata`. + [#2952](https://github.com/lovell/sharp/pull/2952) + [@mbklein](https://github.com/mbklein) diff --git a/docs/src/content/docs/changelog/v0.30.0.md b/docs/src/content/docs/changelog/v0.30.0.md new file mode 100644 index 00000000..2605fbca --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.0.md @@ -0,0 +1,48 @@ +--- +title: v0.30.0 - 1st February 2022 +slug: changelog/v0.30.0 +--- + +* Add support for GIF output to prebuilt binaries. + +* Reduce minimum Linux ARM64v8 glibc requirement to 2.17. + +* Verify prebuilt binaries with a Subresource Integrity check. + +* Standardise WebP `effort` option name, deprecate `reductionEffort`. + +* Standardise HEIF `effort` option name, deprecate `speed`. + +* Add support for IIIF v3 tile-based output. + +* Expose control over CPU effort for palette-based PNG output. + [#2541](https://github.com/lovell/sharp/issues/2541) + +* Improve animated (multi-page) image resize and extract. + [#2789](https://github.com/lovell/sharp/pull/2789) + [@kleisauke](https://github.com/kleisauke) + +* Expose platform and architecture of vendored binaries as `sharp.vendor`. + [#2928](https://github.com/lovell/sharp/issues/2928) + +* Ensure 16-bit PNG output uses correct bitdepth. + [#2958](https://github.com/lovell/sharp/pull/2958) + [@gforge](https://github.com/gforge) + +* Properly emit close events for duplex streams. + [#2976](https://github.com/lovell/sharp/pull/2976) + [@driannaude](https://github.com/driannaude) + +* Expose `unlimited` option for SVG and PNG input, switches off safety features. + [#2984](https://github.com/lovell/sharp/issues/2984) + +* Add `withoutReduction` option to resize operation. + [#3006](https://github.com/lovell/sharp/pull/3006) + [@christopherbradleybanks](https://github.com/christopherbradleybanks) + +* Add `resolutionUnit` as `tiff` option and expose in metadata. + [#3023](https://github.com/lovell/sharp/pull/3023) + [@ompal-sisodiya](https://github.com/ompal-sisodiya) + +* Ensure rotate-then-extract works with EXIF mirroring. + [#3024](https://github.com/lovell/sharp/issues/3024) diff --git a/docs/src/content/docs/changelog/v0.30.1.md b/docs/src/content/docs/changelog/v0.30.1.md new file mode 100644 index 00000000..06f890da --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.1.md @@ -0,0 +1,19 @@ +--- +title: v0.30.1 - 9th February 2022 +slug: changelog/v0.30.1 +--- + +* Allow use of `toBuffer` and `toFile` on the same instance. + [#3044](https://github.com/lovell/sharp/issues/3044) + +* Skip shrink-on-load for known libjpeg rounding errors. + [#3066](https://github.com/lovell/sharp/issues/3066) + [@kleisauke](https://github.com/kleisauke) + +* Ensure withoutReduction does not interfere with contain/crop/embed. + [#3081](https://github.com/lovell/sharp/pull/3081) + [@kleisauke](https://github.com/kleisauke) + +* Ensure affine interpolator is correctly finalised. + [#3083](https://github.com/lovell/sharp/pull/3083) + [@kleisauke](https://github.com/kleisauke) diff --git a/docs/src/content/docs/changelog/v0.30.2.md b/docs/src/content/docs/changelog/v0.30.2.md new file mode 100644 index 00000000..1b5c7e1c --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.2.md @@ -0,0 +1,17 @@ +--- +title: v0.30.2 - 2nd March 2022 +slug: changelog/v0.30.2 +--- + +* Improve performance and accuracy when compositing multiple images. + [#2286](https://github.com/lovell/sharp/issues/2286) + +* Expand pkgconfig search path for wider BSD support. + [#3106](https://github.com/lovell/sharp/issues/3106) + +* Ensure Windows C++ runtime is linked statically (regression in 0.30.0). + [#3110](https://github.com/lovell/sharp/pull/3110) + [@kleisauke](https://github.com/kleisauke) + +* Temporarily ignore greyscale ICC profiles to workaround lcms bug. + [#3112](https://github.com/lovell/sharp/issues/3112) diff --git a/docs/src/content/docs/changelog/v0.30.3.md b/docs/src/content/docs/changelog/v0.30.3.md new file mode 100644 index 00000000..77a2584a --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.3.md @@ -0,0 +1,13 @@ +--- +title: v0.30.3 - 14th March 2022 +slug: changelog/v0.30.3 +--- + +* Allow `sharpen` options to be provided more consistently as an Object. + [#2561](https://github.com/lovell/sharp/issues/2561) + +* Expose `x1`, `y2` and `y3` parameters of `sharpen` operation. + [#2935](https://github.com/lovell/sharp/issues/2935) + +* Prevent double unpremultiply with some composite blend modes (regression in 0.30.2). + [#3118](https://github.com/lovell/sharp/issues/3118) diff --git a/docs/src/content/docs/changelog/v0.30.4.md b/docs/src/content/docs/changelog/v0.30.4.md new file mode 100644 index 00000000..a4f0040b --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.4.md @@ -0,0 +1,20 @@ +--- +title: v0.30.4 - 18th April 2022 +slug: changelog/v0.30.4 +--- + +* Increase control over sensitivity to invalid images via `failOn`, deprecate `failOnError` (equivalent to `failOn: 'warning'`). + +* Ensure `create` input image has correct bit depth and colour space. + [#3139](https://github.com/lovell/sharp/issues/3139) + +* Add support for `TypedArray` input with `byteOffset` and `length`. + [#3146](https://github.com/lovell/sharp/pull/3146) + [@codepage949](https://github.com/codepage949) + +* Improve error message when attempting to render SVG input greater than 32767x32767. + [#3167](https://github.com/lovell/sharp/issues/3167) + +* Add missing file name to 'Input file is missing' error message. + [#3178](https://github.com/lovell/sharp/pull/3178) + [@Brodan](https://github.com/Brodan) diff --git a/docs/src/content/docs/changelog/v0.30.5.md b/docs/src/content/docs/changelog/v0.30.5.md new file mode 100644 index 00000000..40635761 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.5.md @@ -0,0 +1,19 @@ +--- +title: v0.30.5 - 23rd May 2022 +slug: changelog/v0.30.5 +--- + +* Install: pass `PKG_CONFIG_PATH` via env rather than substitution. + [@dwisiswant0](https://github.com/dwisiswant0) + +* Add support for `--libc` flag to improve cross-platform installation. + [#3160](https://github.com/lovell/sharp/pull/3160) + [@joonamo](https://github.com/joonamo) + +* Allow installation of prebuilt libvips binaries from filesystem. + [#3196](https://github.com/lovell/sharp/pull/3196) + [@ankurparihar](https://github.com/ankurparihar) + +* Fix rotate-then-extract for EXIF orientation 2. + [#3218](https://github.com/lovell/sharp/pull/3218) + [@jakob0fischl](https://github.com/jakob0fischl) diff --git a/docs/src/content/docs/changelog/v0.30.6.md b/docs/src/content/docs/changelog/v0.30.6.md new file mode 100644 index 00000000..34092104 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.6.md @@ -0,0 +1,10 @@ +--- +title: v0.30.6 - 30th May 2022 +slug: changelog/v0.30.6 +--- + +* Allow values for `limitInputPixels` larger than 32-bit. + [#3238](https://github.com/lovell/sharp/issues/3238) + +* Ensure brew-installed `vips` can be detected (regression in 0.30.5). + [#3239](https://github.com/lovell/sharp/issues/3239) diff --git a/docs/src/content/docs/changelog/v0.30.7.md b/docs/src/content/docs/changelog/v0.30.7.md new file mode 100644 index 00000000..fd90d905 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.30.7.md @@ -0,0 +1,15 @@ +--- +title: v0.30.7 - 22nd June 2022 +slug: changelog/v0.30.7 +--- + +* Ensure tiled composition always works with outside resizing. + [#3227](https://github.com/lovell/sharp/issues/3227) + +* Allow WebP encoding effort of 0. + [#3261](https://github.com/lovell/sharp/pull/3261) + [@AlexanderTheGrey](https://github.com/AlexanderTheGrey) + +* Prevent upsampling via libwebp. + [#3267](https://github.com/lovell/sharp/pull/3267) + [@blacha](https://github.com/blacha) diff --git a/docs/src/content/docs/changelog/v0.31.0.md b/docs/src/content/docs/changelog/v0.31.0.md new file mode 100644 index 00000000..1998f9be --- /dev/null +++ b/docs/src/content/docs/changelog/v0.31.0.md @@ -0,0 +1,63 @@ +--- +title: v0.31.0 - 5th September 2022 +slug: changelog/v0.31.0 +--- + +* Drop support for Node.js 12, now requires Node.js >= 14.15.0. + +* GIF output now re-uses input palette if possible. Use `reoptimise` option to generate a new palette. + +* Add WebP `minSize` and `mixed` options for greater control over animation frames. + +* Remove previously-deprecated WebP `reductionEffort` and HEIF `speed` options. Use `effort` to control these. + +* The `flip` and `flop` operations will now occur before the `rotate` operation. + +* Improve `normalise` operation with use of histogram. + [#200](https://github.com/lovell/sharp/issues/200) + +* Use combined bounding box of alpha and non-alpha channels for `trim` operation. + [#2166](https://github.com/lovell/sharp/issues/2166) + +* Add Buffer and Stream support to tile-based output. + [#2238](https://github.com/lovell/sharp/issues/2238) + +* Add input `fileSuffix` and output `alias` to `format` information. + [#2642](https://github.com/lovell/sharp/issues/2642) + +* Re-introduce support for greyscale ICC profiles (temporarily removed in 0.30.2). + [#3114](https://github.com/lovell/sharp/issues/3114) + +* Add support for WebP and PackBits `compression` options with TIFF output. + [#3198](https://github.com/lovell/sharp/issues/3198) + +* Ensure OpenSlide and FITS input works with custom libvips. + [#3226](https://github.com/lovell/sharp/issues/3226) + +* Ensure `trim` operation is a no-op when it would reduce an image to nothing. + [#3223](https://github.com/lovell/sharp/issues/3223) + +* Expose `vips_text` to create an image containing rendered text. + [#3252](https://github.com/lovell/sharp/pull/3252) + [@brahima](https://github.com/brahima) + +* Ensure only properties owned by the `withMetadata` EXIF Object are parsed. + [#3292](https://github.com/lovell/sharp/issues/3292) + +* Expand `linear` operation to allow use of per-channel arrays. + [#3303](https://github.com/lovell/sharp/pull/3303) + [@antonmarsden](https://github.com/antonmarsden) + +* Ensure the order of `rotate`, `resize` and `extend` operations is respected where possible. + Emit warnings when previous calls in the same pipeline will be ignored. + [#3319](https://github.com/lovell/sharp/issues/3319) + +* Ensure PNG bitdepth can be set for non-palette output. + [#3322](https://github.com/lovell/sharp/issues/3322) + +* Add trim option to provide a specific background colour. + [#3332](https://github.com/lovell/sharp/pull/3332) + [@mart-jansink](https://github.com/mart-jansink) + +* Ensure resized image is unpremultiplied before composite. + [#3334](https://github.com/lovell/sharp/issues/3334) diff --git a/docs/src/content/docs/changelog/v0.31.1.md b/docs/src/content/docs/changelog/v0.31.1.md new file mode 100644 index 00000000..44467514 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.31.1.md @@ -0,0 +1,22 @@ +--- +title: v0.31.1 - 29th September 2022 +slug: changelog/v0.31.1 +--- + +* Upgrade to libvips v8.13.2 for upstream bug fixes. + +* Ensure `close` event occurs after `end` event for Stream-based output. + [#3313](https://github.com/lovell/sharp/issues/3313) + +* Ensure `limitInputPixels` constructor option uses uint64. + [#3349](https://github.com/lovell/sharp/pull/3349) + [@marcosc90](https://github.com/marcosc90) + +* Ensure auto-rotation works with shrink-on-load and extract (regression in 0.31.0). + [#3352](https://github.com/lovell/sharp/issues/3352) + +* Ensure AVIF output is always 8-bit. + [#3358](https://github.com/lovell/sharp/issues/3358) + +* Ensure greyscale images can be trimmed (regression in 0.31.0). + [#3386](https://github.com/lovell/sharp/issues/3386) diff --git a/docs/src/content/docs/changelog/v0.31.2.md b/docs/src/content/docs/changelog/v0.31.2.md new file mode 100644 index 00000000..c0be292b --- /dev/null +++ b/docs/src/content/docs/changelog/v0.31.2.md @@ -0,0 +1,12 @@ +--- +title: v0.31.2 - 4th November 2022 +slug: changelog/v0.31.2 +--- + +* Upgrade to libvips v8.13.3 for upstream bug fixes. + +* Ensure manual flip, rotate, resize operation ordering (regression in 0.31.1) + [#3391](https://github.com/lovell/sharp/issues/3391) + +* Ensure auto-rotation works without resize (regression in 0.31.1) + [#3422](https://github.com/lovell/sharp/issues/3422) diff --git a/docs/src/content/docs/changelog/v0.31.3.md b/docs/src/content/docs/changelog/v0.31.3.md new file mode 100644 index 00000000..84c6ac89 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.31.3.md @@ -0,0 +1,34 @@ +--- +title: v0.31.3 - 21st December 2022 +slug: changelog/v0.31.3 +--- + +* Add experimental support for JPEG-XL images. Requires libvips compiled with libjxl. + [#2731](https://github.com/lovell/sharp/issues/2731) + +* Add runtime detection of V8 memory cage, ensures compatibility with Electron 21 onwards. + [#3384](https://github.com/lovell/sharp/issues/3384) + +* Expose `interFrameMaxError` and `interPaletteMaxError` GIF optimisation properties. + [#3401](https://github.com/lovell/sharp/issues/3401) + +* Allow installation on Linux with glibc patch versions e.g. Fedora 38. + [#3423](https://github.com/lovell/sharp/issues/3423) + +* Expand range of existing `sharpen` parameters to match libvips. + [#3427](https://github.com/lovell/sharp/issues/3427) + +* Prevent possible race condition awaiting metadata of Stream-based input. + [#3451](https://github.com/lovell/sharp/issues/3451) + +* Improve `extractChannel` support for 16-bit output colourspaces. + [#3453](https://github.com/lovell/sharp/issues/3453) + +* Ignore `sequentialRead` option when calculating image statistics. + [#3462](https://github.com/lovell/sharp/issues/3462) + +* Small performance improvement for operations that introduce a non-opaque background. + [#3465](https://github.com/lovell/sharp/issues/3465) + +* Ensure integral output of `linear` operation. + [#3468](https://github.com/lovell/sharp/issues/3468) diff --git a/docs/src/content/docs/changelog/v0.32.0.md b/docs/src/content/docs/changelog/v0.32.0.md new file mode 100644 index 00000000..f86104bf --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.0.md @@ -0,0 +1,61 @@ +--- +title: v0.32.0 - 24th March 2023 +slug: changelog/v0.32.0 +--- + +* Default to using sequential rather than random access read where possible. + +* Replace GIF output `optimise` / `optimize` option with `reuse`. + +* Add `progressive` option to GIF output for interlacing. + +* Add `wrap` option to text image creation. + +* Add `formatMagick` property to metadata of images loaded via *magick. + +* Prefer integer (un)premultiply for faster resizing of RGBA images. + +* Add `ignoreIcc` input option to ignore embedded ICC profile. + +* Allow use of GPS (IFD3) EXIF metadata. + [#2767](https://github.com/lovell/sharp/issues/2767) + +* TypeScript definitions are now maintained and published directly, deprecating the `@types/sharp` package. + [#3369](https://github.com/lovell/sharp/issues/3369) + +* Prebuilt binaries: ensure macOS 10.13+ support, as documented. + [#3438](https://github.com/lovell/sharp/issues/3438) + +* Prebuilt binaries: prevent use of glib slice allocator, improves QEMU support. + [#3448](https://github.com/lovell/sharp/issues/3448) + +* Add focus point coordinates to output when using attention based crop. + [#3470](https://github.com/lovell/sharp/pull/3470) + [@ejoebstl](https://github.com/ejoebstl) + +* Expose sharp version as `sharp.versions.sharp`. + [#3471](https://github.com/lovell/sharp/issues/3471) + +* Respect `fastShrinkOnLoad` resize option for WebP input. + [#3516](https://github.com/lovell/sharp/issues/3516) + +* Reduce sharpen `sigma` maximum from 10000 to 10. + [#3521](https://github.com/lovell/sharp/issues/3521) + +* Add support for `ArrayBuffer` input. + [#3548](https://github.com/lovell/sharp/pull/3548) + [@kapouer](https://github.com/kapouer) + +* Add support to `extend` operation for `extendWith` to allow copy/mirror/repeat. + [#3556](https://github.com/lovell/sharp/pull/3556) + [@janaz](https://github.com/janaz) + +* Ensure all async JS callbacks are wrapped to help avoid possible race condition. + [#3569](https://github.com/lovell/sharp/issues/3569) + +* Prebuilt binaries: support for tile-based output temporarily removed due to licensing issue. + [#3581](https://github.com/lovell/sharp/issues/3581) + +* Add support to `normalise` for `lower` and `upper` percentiles. + [#3583](https://github.com/lovell/sharp/pull/3583) + [@LachlanNewman](https://github.com/LachlanNewman) diff --git a/docs/src/content/docs/changelog/v0.32.1.md b/docs/src/content/docs/changelog/v0.32.1.md new file mode 100644 index 00000000..a73cfb93 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.1.md @@ -0,0 +1,30 @@ +--- +title: v0.32.1 - 27th April 2023 +slug: changelog/v0.32.1 +--- + +* Add experimental `unflatten` operation. + [#3461](https://github.com/lovell/sharp/pull/3461) + [@antonmarsden](https://github.com/antonmarsden) + +* Ensure use of `flip` operation forces random access read (regression in 0.32.0). + [#3600](https://github.com/lovell/sharp/issues/3600) + +* Ensure `linear` operation works with 16-bit input (regression in 0.31.3). + [#3605](https://github.com/lovell/sharp/issues/3605) + +* Install: ensure proxy URLs are logged correctly. + [#3615](https://github.com/lovell/sharp/pull/3615) + [@TomWis97](https://github.com/TomWis97) + +* Ensure profile-less CMYK to CMYK roundtrip skips colourspace conversion. + [#3620](https://github.com/lovell/sharp/issues/3620) + +* Add support for `modulate` operation when using non-sRGB pipeline colourspace. + [#3620](https://github.com/lovell/sharp/issues/3620) + +* Ensure `trim` operation works with CMYK images (regression in 0.31.0). + [#3636](https://github.com/lovell/sharp/issues/3636) + +* Install: coerce libc version to semver. + [#3641](https://github.com/lovell/sharp/issues/3641) diff --git a/docs/src/content/docs/changelog/v0.32.2.md b/docs/src/content/docs/changelog/v0.32.2.md new file mode 100644 index 00000000..a14aa141 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.2.md @@ -0,0 +1,25 @@ +--- +title: v0.32.2 - 11th July 2023 +slug: changelog/v0.32.2 +--- + +* Limit HEIF output dimensions to 16384x16384, matches libvips. + +* Ensure exceptions are not thrown when terminating. + [#3569](https://github.com/lovell/sharp/issues/3569) + +* Ensure the same access method is used for all inputs (regression in 0.32.0). + [#3669](https://github.com/lovell/sharp/issues/3669) + +* Improve detection of jp2 filename extensions. + [#3674](https://github.com/lovell/sharp/pull/3674) + [@bianjunjie1981](https://github.com/bianjunjie1981) + +* Guard use of smartcrop premultiplied option to prevent warning (regression in 0.32.1). + [#3710](https://github.com/lovell/sharp/issues/3710) + +* Prevent over-compute in affine-based rotate before resize. + [#3722](https://github.com/lovell/sharp/issues/3722) + +* Allow sequential read for EXIF-based auto-orientation. + [#3725](https://github.com/lovell/sharp/issues/3725) diff --git a/docs/src/content/docs/changelog/v0.32.3.md b/docs/src/content/docs/changelog/v0.32.3.md new file mode 100644 index 00000000..ac315198 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.3.md @@ -0,0 +1,10 @@ +--- +title: v0.32.3 - 14th July 2023 +slug: changelog/v0.32.3 +--- + +* Expose `preset` option for WebP output. + [#3639](https://github.com/lovell/sharp/issues/3639) + +* Ensure decoding remains sequential for all operations (regression in 0.32.2). + [#3725](https://github.com/lovell/sharp/issues/3725) diff --git a/docs/src/content/docs/changelog/v0.32.4.md b/docs/src/content/docs/changelog/v0.32.4.md new file mode 100644 index 00000000..f327f8d0 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.4.md @@ -0,0 +1,11 @@ +--- +title: v0.32.4 - 21st July 2023 +slug: changelog/v0.32.4 +--- + +* Upgrade to libvips v8.14.3 for upstream bug fixes. + +* Expose ability to (un)block low-level libvips operations by name. + +* Prebuilt binaries: restore support for tile-based output. + [#3581](https://github.com/lovell/sharp/issues/3581) diff --git a/docs/src/content/docs/changelog/v0.32.5.md b/docs/src/content/docs/changelog/v0.32.5.md new file mode 100644 index 00000000..3a38ec7e --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.5.md @@ -0,0 +1,24 @@ +--- +title: v0.32.5 - 15th August 2023 +slug: changelog/v0.32.5 +--- + +* Upgrade to libvips v8.14.4 for upstream bug fixes. + +* TypeScript: Add missing `WebpPresetEnum` to definitions. + [#3748](https://github.com/lovell/sharp/pull/3748) + [@pilotso11](https://github.com/pilotso11) + +* Ensure compilation using musl v1.2.4. + [#3755](https://github.com/lovell/sharp/pull/3755) + [@kleisauke](https://github.com/kleisauke) + +* Ensure resize with a `fit` of `inside` respects 90/270 degree rotation. + [#3756](https://github.com/lovell/sharp/issues/3756) + +* TypeScript: Ensure `minSize` property of `WebpOptions` is boolean. + [#3758](https://github.com/lovell/sharp/pull/3758) + [@sho-xizz](https://github.com/sho-xizz) + +* Ensure `withMetadata` adds default sRGB profile. + [#3761](https://github.com/lovell/sharp/issues/3761) diff --git a/docs/src/content/docs/changelog/v0.32.6.md b/docs/src/content/docs/changelog/v0.32.6.md new file mode 100644 index 00000000..6b7c3d43 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.32.6.md @@ -0,0 +1,19 @@ +--- +title: v0.32.6 - 18th September 2023 +slug: changelog/v0.32.6 +--- + +* Upgrade to libvips v8.14.5 for upstream bug fixes. + +* Ensure composite tile images are fully decoded (regression in 0.32.0). + [#3767](https://github.com/lovell/sharp/issues/3767) + +* Ensure `withMetadata` can add ICC profiles to RGB16 output. + [#3773](https://github.com/lovell/sharp/issues/3773) + +* Ensure `withMetadata` does not reduce 16-bit images to 8-bit (regression in 0.32.5). + [#3773](https://github.com/lovell/sharp/issues/3773) + +* TypeScript: Add definitions for block and unblock. + [#3799](https://github.com/lovell/sharp/pull/3799) + [@ldrick](https://github.com/ldrick) diff --git a/docs/src/content/docs/changelog/v0.33.0.md b/docs/src/content/docs/changelog/v0.33.0.md new file mode 100644 index 00000000..1ca8435d --- /dev/null +++ b/docs/src/content/docs/changelog/v0.33.0.md @@ -0,0 +1,47 @@ +--- +title: v0.33.0 - 29th November 2023 +slug: changelog/v0.33.0 +--- + +* Drop support for Node.js 14 and 16, now requires Node.js ^18.17.0 or >= 20.3.0 + +* Prebuilt binaries distributed via npm registry and installed via package manager. + +* Building from source requires dependency on `node-addon-api`. + +* Remove `sharp.vendor`. + +* Partially deprecate `withMetadata()`, use `withExif()` and `withIccProfile()`. + +* Add experimental support for WebAssembly-based runtimes. + [@RReverser](https://github.com/RReverser) + +* Options for `trim` operation must be an Object, add new `lineArt` option. + [#2363](https://github.com/lovell/sharp/issues/2363) + +* Improve luminance of `tint` operation with weighting function. + [#3338](https://github.com/lovell/sharp/issues/3338) + [@jcupitt](https://github.com/jcupitt) + +* Ensure all `Error` objects contain a `stack` property. + [#3653](https://github.com/lovell/sharp/issues/3653) + +* Make `compression` option of `heif` mandatory to help reduce HEIF vs HEIC confusion. + [#3740](https://github.com/lovell/sharp/issues/3740) + +* Ensure correct interpretation of 16-bit raw input. + [#3808](https://github.com/lovell/sharp/issues/3808) + +* Add support for `miniswhite` when using TIFF output. + [#3812](https://github.com/lovell/sharp/pull/3812) + [@dnsbty](https://github.com/dnsbty) + +* TypeScript: add missing definition for `withMetadata` boolean. + [#3823](https://github.com/lovell/sharp/pull/3823) + [@uhthomas](https://github.com/uhthomas) + +* Add more fine-grained control over output metadata. + [#3824](https://github.com/lovell/sharp/issues/3824) + +* Ensure multi-page extract remains sequential. + [#3837](https://github.com/lovell/sharp/issues/3837) diff --git a/docs/src/content/docs/changelog/v0.33.1.md b/docs/src/content/docs/changelog/v0.33.1.md new file mode 100644 index 00000000..9a280c82 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.33.1.md @@ -0,0 +1,14 @@ +--- +title: v0.33.1 - 17th December 2023 +slug: changelog/v0.33.1 +--- + +* Add support for Yarn Plug'n'Play filesystem layout. + [#3888](https://github.com/lovell/sharp/issues/3888) + +* Emit warning when attempting to use invalid ICC profiles. + [#3895](https://github.com/lovell/sharp/issues/3895) + +* Ensure `VIPS_NOVECTOR` environment variable is respected. + [#3897](https://github.com/lovell/sharp/pull/3897) + [@icetee](https://github.com/icetee) diff --git a/docs/src/content/docs/changelog/v0.33.2.md b/docs/src/content/docs/changelog/v0.33.2.md new file mode 100644 index 00000000..7d88c0ad --- /dev/null +++ b/docs/src/content/docs/changelog/v0.33.2.md @@ -0,0 +1,16 @@ +--- +title: v0.33.2 - 12th January 2024 +slug: changelog/v0.33.2 +--- + +* Upgrade to libvips v8.15.1 for upstream bug fixes. + +* TypeScript: add definition for `keepMetadata`. + [#3914](https://github.com/lovell/sharp/pull/3914) + [@abhi0498](https://github.com/abhi0498) + +* Ensure `extend` operation stays sequential when copying (regression in 0.32.0). + [#3928](https://github.com/lovell/sharp/issues/3928) + +* Improve error handling for unsupported multi-page rotation. + [#3940](https://github.com/lovell/sharp/issues/3940) diff --git a/docs/src/content/docs/changelog/v0.33.3.md b/docs/src/content/docs/changelog/v0.33.3.md new file mode 100644 index 00000000..17e6639f --- /dev/null +++ b/docs/src/content/docs/changelog/v0.33.3.md @@ -0,0 +1,21 @@ +--- +title: v0.33.3 - 23rd March 2024 +slug: changelog/v0.33.3 +--- + +* Upgrade to libvips v8.15.2 for upstream bug fixes. + +* Ensure `keepIccProfile` retains P3 and CMYK input profiles. + [#3906](https://github.com/lovell/sharp/issues/3906) + [#4008](https://github.com/lovell/sharp/issues/4008) + +* Ensure `text.wrap` property can accept `word-char` as value. + [#4028](https://github.com/lovell/sharp/pull/4028) + [@yolopunk](https://github.com/yolopunk) + +* Ensure `clone` takes a deep copy of existing options. + [#4029](https://github.com/lovell/sharp/issues/4029) + +* Add `bitdepth` option to `heif` output (prebuilt binaries support 8-bit only). + [#4036](https://github.com/lovell/sharp/pull/4036) + [@mertalev](https://github.com/mertalev) diff --git a/docs/src/content/docs/changelog/v0.33.4.md b/docs/src/content/docs/changelog/v0.33.4.md new file mode 100644 index 00000000..9c4500f9 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.33.4.md @@ -0,0 +1,32 @@ +--- +title: v0.33.4 - 16th May 2024 +slug: changelog/v0.33.4 +--- + +* Remove experimental status from `pipelineColourspace`. + +* Reduce default concurrency when musl thread over-subscription detected. + +* TypeScript: add missing definitions for `OverlayOptions`. + [#4048](https://github.com/lovell/sharp/pull/4048) + [@ike-gg](https://github.com/ike-gg) + +* Install: add advanced option to force use of a globally-installed libvips. + [#4060](https://github.com/lovell/sharp/issues/4060) + +* Expose `bilinear` resizing kernel (and interpolator). + [#4061](https://github.com/lovell/sharp/issues/4061) + +* Ensure `extend` operation stays sequential for multi-page TIFF (regression in 0.32.0). + [#4069](https://github.com/lovell/sharp/issues/4069) + +* Tighten validation of constructor `text` integer properties. + [#4071](https://github.com/lovell/sharp/issues/4071) + +* Simplify internal StaySequential logic. + [#4074](https://github.com/lovell/sharp/pull/4074) + [@kleisauke](https://github.com/kleisauke) + +* Ensure negate operation occurs after profile conversion. + [#4096](https://github.com/lovell/sharp/pull/4096) + [@adriaanmeuris](https://github.com/adriaanmeuris) diff --git a/docs/src/content/docs/changelog/v0.33.5.md b/docs/src/content/docs/changelog/v0.33.5.md new file mode 100644 index 00000000..7fb99baa --- /dev/null +++ b/docs/src/content/docs/changelog/v0.33.5.md @@ -0,0 +1,39 @@ +--- +title: v0.33.5 - 16th August 2024 +slug: changelog/v0.33.5 +--- + +* Upgrade to libvips v8.15.3 for upstream bug fixes. + +* Add `pageHeight` and `pages` to response of multi-page output. + [#3411](https://github.com/lovell/sharp/issues/3411) + +* Ensure option to force use of a globally-installed libvips works correctly. + [#4111](https://github.com/lovell/sharp/pull/4111) + [@project0](https://github.com/project0) + +* Minimise use of `engines` property to improve yarn v1 support. + [#4130](https://github.com/lovell/sharp/issues/4130) + +* Ensure `sharp.format.heif` includes only AVIF when using prebuilt binaries. + [#4132](https://github.com/lovell/sharp/issues/4132) + +* Add support to recomb operation for 4x4 matrices. + [#4147](https://github.com/lovell/sharp/pull/4147) + [@ton11797](https://github.com/ton11797) + +* Expose PNG text chunks as `comments` metadata. + [#4157](https://github.com/lovell/sharp/pull/4157) + [@nkeynes](https://github.com/nkeynes) + +* Expose optional `precision` and `minAmplitude` parameters of `blur` operation. + [#4168](https://github.com/lovell/sharp/pull/4168) + [#4172](https://github.com/lovell/sharp/pull/4172) + [@marcosc90](https://github.com/marcosc90) + +* Ensure `keepIccProfile` avoids colour transformation where possible. + [#4186](https://github.com/lovell/sharp/issues/4186) + +* TypeScript: `chromaSubsampling` metadata is optional. + [#4191](https://github.com/lovell/sharp/pull/4191) + [@DavidVaness](https://github.com/DavidVaness) diff --git a/docs/src/content/docs/changelog/v0.34.0.md b/docs/src/content/docs/changelog/v0.34.0.md new file mode 100644 index 00000000..4fc83109 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.34.0.md @@ -0,0 +1,52 @@ +--- +title: v0.34.0 - 4th April 2025 +slug: changelog/v0.34.0 +--- + +* Breaking: Support array of input images to be joined or animated. + [#1580](https://github.com/lovell/sharp/issues/1580) + +* Breaking: Ensure `removeAlpha` removes all alpha channels. + [#2266](https://github.com/lovell/sharp/issues/2266) + +* Breaking: Non-animated GIF output defaults to no-loop instead of loop-forever. + [#3394](https://github.com/lovell/sharp/issues/3394) + +* Breaking: Support `info.size` on wide-character systems via upgrade to C++17. + [#3943](https://github.com/lovell/sharp/issues/3943) + +* Breaking: Ensure `background` metadata can be parsed by `color` package. + [#4090](https://github.com/lovell/sharp/issues/4090) + +* Add `isPalette` and `bitsPerSample` to metadata, deprecate `paletteBitDepth`. + +* Expose WebP `smartDeblock` output option. + +* Prevent use of linux-x64 binaries with v1 microarchitecture. + +* Add `autoOrient` operation and constructor option. + [#4151](https://github.com/lovell/sharp/pull/4151) + [@happycollision](https://github.com/happycollision) + +* TypeScript: Ensure channel counts use the correct range. + [#4197](https://github.com/lovell/sharp/pull/4197) + [@DavidVaness](https://github.com/DavidVaness) + +* Improve support for ppc64le architecture. + [#4203](https://github.com/lovell/sharp/pull/4203) + [@sumitd2](https://github.com/sumitd2) + +* Add `pdfBackground` constructor property. + [#4207](https://github.com/lovell/sharp/pull/4207) + [@calebmer](https://github.com/calebmer) + +* Expose erode and dilate operations. + [#4243](https://github.com/lovell/sharp/pull/4243) + [@qpincon](https://github.com/qpincon) + +* Add support for RGBE images. Requires libvips compiled with radiance support. + [#4316](https://github.com/lovell/sharp/pull/4316) + [@florentzabera](https://github.com/florentzabera) + +* Allow wide-gamut HEIF output at higher bitdepths. + [#4344](https://github.com/lovell/sharp/issues/4344) diff --git a/docs/src/content/docs/changelog/v0.34.1.md b/docs/src/content/docs/changelog/v0.34.1.md new file mode 100644 index 00000000..a5ae94dc --- /dev/null +++ b/docs/src/content/docs/changelog/v0.34.1.md @@ -0,0 +1,8 @@ +--- +title: v0.34.1 - 7th April 2025 +slug: changelog/v0.34.1 +--- + +* TypeScript: Ensure new `autoOrient` property is optional. + [#4362](https://github.com/lovell/sharp/pull/4362) + [@styfle](https://github.com/styfle) diff --git a/docs/src/content/docs/changelog/v0.34.2.md b/docs/src/content/docs/changelog/v0.34.2.md new file mode 100644 index 00000000..2292304e --- /dev/null +++ b/docs/src/content/docs/changelog/v0.34.2.md @@ -0,0 +1,28 @@ +--- +title: v0.34.2 - 20th May 2025 +slug: changelog/v0.34.2 +--- + +* Ensure animated GIF to WebP conversion retains loop (regression in 0.34.0). + [#3394](https://github.com/lovell/sharp/issues/3394) + +* Ensure `pdfBackground` constructor property is used. + [#4207](https://github.com/lovell/sharp/pull/4207) + [#4398](https://github.com/lovell/sharp/issues/4398) + +* Add experimental support for prebuilt Windows ARM64 binaries. + [#4375](https://github.com/lovell/sharp/pull/4375) + [@hans00](https://github.com/hans00) + +* Ensure resizing with a `fit` of `contain` supports multiple alpha channels. + [#4382](https://github.com/lovell/sharp/issues/4382) + +* TypeScript: Ensure `metadata` response more closely matches reality. + [#4383](https://github.com/lovell/sharp/issues/4383) + +* TypeScript: Ensure `smartDeblock` property is included in WebP definition. + [#4387](https://github.com/lovell/sharp/pull/4387) + [@Stephen-X](https://github.com/Stephen-X) + +* Ensure support for wide-character filenames on Windows (regression in 0.34.0). + [#4391](https://github.com/lovell/sharp/issues/4391) diff --git a/docs/src/content/docs/changelog/v0.34.3.md b/docs/src/content/docs/changelog/v0.34.3.md new file mode 100644 index 00000000..1f301674 --- /dev/null +++ b/docs/src/content/docs/changelog/v0.34.3.md @@ -0,0 +1,33 @@ +--- +title: v0.34.3 - 10th July 2025 +slug: changelog/v0.34.3 +--- + +* Upgrade to libvips v8.17.1 for upstream bug fixes. + +* Add "Magic Kernel Sharp" (no relation) to resizing kernels. + +* Deprecate top-level, format-specific constructor parameters, e.g. `subifd` becomes `tiff.subifd`. + +* Expose `stylesheet` and `highBitdepth` SVG input parameters. + +* Expose `keepDuplicateFrames` GIF output parameter. + +* Add support for RAW digital camera image input. Requires libvips compiled with libraw support. + +* Provide XMP metadata as a string, as well as a Buffer, where possible. + +* Add `pageHeight` option to `create` and `raw` input for animated images. + [#3236](https://github.com/lovell/sharp/issues/3236) + +* Expose JPEG 2000 `oneshot` decoder option. + [#4262](https://github.com/lovell/sharp/pull/4262) + [@mbklein](https://github.com/mbklein) + +* Support composite operation with non-sRGB pipeline colourspace. + [#4412](https://github.com/lovell/sharp/pull/4412) + [@kleisauke](https://github.com/kleisauke) + +* Add `keepXmp` and `withXmp` for control over output XMP metadata. + [#4416](https://github.com/lovell/sharp/pull/4416) + [@tpatel](https://github.com/tpatel)