mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
217 lines
5.6 KiB
Markdown
217 lines
5.6 KiB
Markdown
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
|
|
|
|
## format
|
|
|
|
An Object containing nested boolean values representing the available input and output formats/methods.
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
console.log(sharp.format);
|
|
```
|
|
|
|
Returns **[Object][1]** 
|
|
|
|
## interpolators
|
|
|
|
An Object containing the available interpolators and their proper values
|
|
|
|
Type: [string][2]
|
|
|
|
### nearest
|
|
|
|
[Nearest neighbour interpolation][3]. Suitable for image enlargement only.
|
|
|
|
### bilinear
|
|
|
|
[Bilinear interpolation][4]. Faster than bicubic but with less smooth results.
|
|
|
|
### bicubic
|
|
|
|
[Bicubic interpolation][5] (the default).
|
|
|
|
### locallyBoundedBicubic
|
|
|
|
[LBB interpolation][6]. Prevents some "[acutance][7]" but typically reduces performance by a factor of 2.
|
|
|
|
### nohalo
|
|
|
|
[Nohalo interpolation][8]. Prevents acutance but typically reduces performance by a factor of 3.
|
|
|
|
### vertexSplitQuadraticBasisSpline
|
|
|
|
[VSQBS interpolation][9]. Prevents "staircasing" when enlarging.
|
|
|
|
## versions
|
|
|
|
An Object containing the version numbers of libvips and its dependencies.
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
console.log(sharp.versions);
|
|
```
|
|
|
|
## vendor
|
|
|
|
An Object containing the platform and architecture
|
|
of the current and installed vendored binaries.
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
console.log(sharp.vendor);
|
|
```
|
|
|
|
## cache
|
|
|
|
Gets or, when options are provided, sets the limits of *libvips'* operation cache.
|
|
Existing entries in the cache will be trimmed after any change in limits.
|
|
This method always returns cache statistics,
|
|
useful for determining how much working memory is required for a particular task.
|
|
|
|
### Parameters
|
|
|
|
* `options` **([Object][1] | [boolean][10])** Object with the following attributes, or boolean where true uses default cache settings and false removes all caching (optional, default `true`)
|
|
|
|
* `options.memory` **[number][11]** is the maximum memory in MB to use for this cache (optional, default `50`)
|
|
* `options.files` **[number][11]** is the maximum number of files to hold open (optional, default `20`)
|
|
* `options.items` **[number][11]** is the maximum number of operations to cache (optional, default `100`)
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
const stats = sharp.cache();
|
|
```
|
|
|
|
```javascript
|
|
sharp.cache( { items: 200 } );
|
|
sharp.cache( { files: 0 } );
|
|
sharp.cache(false);
|
|
```
|
|
|
|
Returns **[Object][1]** 
|
|
|
|
## concurrency
|
|
|
|
Gets or, when a concurrency is provided, sets
|
|
the maximum number of threads *libvips* should use to process *each image*.
|
|
These are from a thread pool managed by glib,
|
|
which helps avoid the overhead of creating new threads.
|
|
|
|
This method always returns the current concurrency.
|
|
|
|
The default value is the number of CPU cores,
|
|
except when using glibc-based Linux without jemalloc,
|
|
where the default is `1` to help reduce memory fragmentation.
|
|
|
|
A value of `0` will reset this to the number of CPU cores.
|
|
|
|
Some image format libraries spawn additional threads,
|
|
e.g. libaom manages its own 4 threads when encoding AVIF images,
|
|
and these are independent of the value set here.
|
|
|
|
The maximum number of images that sharp can process in parallel
|
|
is controlled by libuv's `UV_THREADPOOL_SIZE` environment variable,
|
|
which defaults to 4.
|
|
|
|
[https://nodejs.org/api/cli.html#uv\_threadpool\_sizesize][12]
|
|
|
|
For example, by default, a machine with 8 CPU cores will process
|
|
4 images in parallel and use up to 8 threads per image,
|
|
so there will be up to 32 concurrent threads.
|
|
|
|
### Parameters
|
|
|
|
* `concurrency` **[number][11]?** 
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
const threads = sharp.concurrency(); // 4
|
|
sharp.concurrency(2); // 2
|
|
sharp.concurrency(0); // 4
|
|
```
|
|
|
|
Returns **[number][11]** concurrency
|
|
|
|
## queue
|
|
|
|
An EventEmitter that emits a `change` event when a task is either:
|
|
|
|
* queued, waiting for *libuv* to provide a worker thread
|
|
* complete
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
sharp.queue.on('change', function(queueLength) {
|
|
console.log('Queue contains ' + queueLength + ' task(s)');
|
|
});
|
|
```
|
|
|
|
## counters
|
|
|
|
Provides access to internal task counters.
|
|
|
|
* queue is the number of tasks this module has queued waiting for *libuv* to provide a worker thread from its pool.
|
|
* process is the number of resize tasks currently being processed.
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
const counters = sharp.counters(); // { queue: 2, process: 4 }
|
|
```
|
|
|
|
Returns **[Object][1]** 
|
|
|
|
## simd
|
|
|
|
Get and set use of SIMD vector unit instructions.
|
|
Requires libvips to have been compiled with liborc support.
|
|
|
|
Improves the performance of `resize`, `blur` and `sharpen` operations
|
|
by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON.
|
|
|
|
### Parameters
|
|
|
|
* `simd` **[boolean][10]** (optional, default `true`)
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
const simd = sharp.simd();
|
|
// simd is `true` if the runtime use of liborc is currently enabled
|
|
```
|
|
|
|
```javascript
|
|
const simd = sharp.simd(false);
|
|
// prevent libvips from using liborc at runtime
|
|
```
|
|
|
|
Returns **[boolean][10]** 
|
|
|
|
[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
|
|
[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
|
|
[3]: http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation
|
|
|
|
[4]: http://en.wikipedia.org/wiki/Bilinear_interpolation
|
|
|
|
[5]: http://en.wikipedia.org/wiki/Bicubic_interpolation
|
|
|
|
[6]: https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100
|
|
|
|
[7]: http://en.wikipedia.org/wiki/Acutance
|
|
|
|
[8]: http://eprints.soton.ac.uk/268086/
|
|
|
|
[9]: https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48
|
|
|
|
[10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
|
|
|
|
[11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
|
|
|
|
[12]: https://nodejs.org/api/cli.html#uv_threadpool_sizesize
|