Docs: changelog and credit for #3556

This commit is contained in:
Lovell Fuller 2023-02-18 12:50:58 +00:00
parent 6f0e6f2e65
commit 863e37455a
6 changed files with 36 additions and 5 deletions

View File

@ -146,7 +146,8 @@ const scaleByHalf = await sharp(input)
## extend
Extends/pads the edges of the image with the provided background colour.
Extend / pad / extrude one or more edges of the image with either
the provided background colour or pixels derived from the image.
This operation will always occur after resizing and extraction, if any.
@ -162,6 +163,7 @@ This operation will always occur after resizing and extraction, if any.
| [extend.left] | <code>number</code> | <code>0</code> | |
| [extend.bottom] | <code>number</code> | <code>0</code> | |
| [extend.right] | <code>number</code> | <code>0</code> | |
| [extend.extendWith] | <code>String</code> | <code>&#x27;background&#x27;</code> | populate new pixels using this method, one of: background, copy, repeat, mirror. |
| [extend.background] | <code>String</code> \| <code>Object</code> | <code>{r: 0, g: 0, b: 0, alpha: 1}</code> | background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. |
**Example**
@ -189,6 +191,16 @@ sharp(input)
})
...
```
**Example**
```js
// Extrude image by 8 pixels to the right, mirroring existing right hand edge
sharp(input)
.extend({
right: 8,
background: 'mirror'
})
...
```
## extract

View File

@ -49,6 +49,10 @@ Requires libvips v8.14.0
[#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)
## v0.31 - *eagle*
Requires libvips v8.13.3

View File

@ -266,3 +266,6 @@ GitHub: https://github.com/marcosc90
Name: Emanuel Jöbstl
GitHub: https://github.com/ejoebstl
Name: Tomasz Janowski
GitHub: https://github.com/janaz

3
lib/index.d.ts vendored
View File

@ -755,7 +755,8 @@ declare namespace sharp {
resize(options: ResizeOptions): Sharp;
/**
* Extends/pads the edges of the image with either the provided background colour or pixels derived from the image.
* Extend / pad / extrude one or more edges of the image with either
* the provided background colour or pixels derived from the image.
* This operation will always occur after resizing and extraction, if any.
* @param extend single pixel count to add to all edges or an Object with per-edge counts
* @throws {Error} Invalid parameters

View File

@ -334,7 +334,8 @@ function resize (width, height, options) {
}
/**
* Extends/pads the edges of the image with the provided background colour.
* Extend / pad / extrude one or more edges of the image with either
* the provided background colour or pixels derived from the image.
* This operation will always occur after resizing and extraction, if any.
*
* @example
@ -360,11 +361,21 @@ function resize (width, height, options) {
* })
* ...
*
* @example
* // Extrude image by 8 pixels to the right, mirroring existing right hand edge
* sharp(input)
* .extend({
* right: 8,
* background: 'mirror'
* })
* ...
*
* @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts
* @param {number} [extend.top=0]
* @param {number} [extend.left=0]
* @param {number} [extend.bottom=0]
* @param {number} [extend.right=0]
* @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror.
* @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.
* @returns {Sharp}
* @throws {Error} Invalid parameters
@ -409,7 +420,7 @@ function extend (extend) {
if (is.string(extendWith[extend.extendWith])) {
this.options.extendWith = extendWith[extend.extendWith];
} else {
throw is.invalidParameterError('extendWith', 'valid value', extend.extendWith);
throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith);
}
}
} else {

View File

@ -147,7 +147,7 @@ describe('Extend', function () {
it('invalid extendWith fails', () => {
assert.throws(
() => sharp().extend({ extendWith: 'invalid-value' }),
/Expected valid value for extendWith but received invalid-value of type string/
/Expected one of: background, copy, repeat, mirror for extendWith but received invalid-value of type string/
);
});
it('can set all edges apart from right', () => {