Docs: clarify how to achieve 16-bit PNG output

This commit is contained in:
Lovell Fuller 2024-02-14 10:03:18 +00:00
parent bc95531f2d
commit 0eb57698ec
2 changed files with 25 additions and 2 deletions

View File

@ -367,10 +367,14 @@ const data = await sharp(input)
Use these PNG options for output image. Use these PNG options for output image.
By default, PNG output is full colour at 8 or 16 bits per pixel. By default, PNG output is full colour at 8 bits per pixel.
Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel.
Set `palette` to `true` for slower, indexed PNG output. Set `palette` to `true` for slower, indexed PNG output.
For 16 bits per pixel output, convert to `rgb16` via
[toColourspace](/api-colour#tocolourspace).
**Throws**: **Throws**:
@ -405,6 +409,14 @@ const data = await sharp(input)
.png({ palette: true }) .png({ palette: true })
.toBuffer(); .toBuffer();
``` ```
**Example**
```js
// Output 16 bits per pixel RGB(A)
const data = await sharp(input)
.toColourspace('rgb16')
.png()
.toBuffer();
```
## webp ## webp

View File

@ -504,10 +504,14 @@ function jpeg (options) {
/** /**
* Use these PNG options for output image. * Use these PNG options for output image.
* *
* By default, PNG output is full colour at 8 or 16 bits per pixel. * By default, PNG output is full colour at 8 bits per pixel.
*
* Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel.
* Set `palette` to `true` for slower, indexed PNG output. * Set `palette` to `true` for slower, indexed PNG output.
* *
* For 16 bits per pixel output, convert to `rgb16` via
* {@link /api-colour#tocolourspace|toColourspace}.
*
* @example * @example
* // Convert any input to full colour PNG output * // Convert any input to full colour PNG output
* const data = await sharp(input) * const data = await sharp(input)
@ -520,6 +524,13 @@ function jpeg (options) {
* .png({ palette: true }) * .png({ palette: true })
* .toBuffer(); * .toBuffer();
* *
* @example
* // Output 16 bits per pixel RGB(A)
* const data = await sharp(input)
* .toColourspace('rgb16')
* .png()
* .toBuffer();
*
* @param {Object} [options] * @param {Object} [options]
* @param {boolean} [options.progressive=false] - use progressive (interlace) scan * @param {boolean} [options.progressive=false] - use progressive (interlace) scan
* @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest) * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest)