diff --git a/docs/api-output.md b/docs/api-output.md index f59feb544..09a087d6d 100644 --- a/docs/api-output.md +++ b/docs/api-output.md @@ -367,10 +367,14 @@ const data = await sharp(input) 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. Set `palette` to `true` for slower, indexed PNG output. +For 16 bits per pixel output, convert to `rgb16` via +[toColourspace](/api-colour#tocolourspace). + **Throws**: @@ -405,6 +409,14 @@ const data = await sharp(input) .png({ palette: true }) .toBuffer(); ``` +**Example** +```js +// Output 16 bits per pixel RGB(A) +const data = await sharp(input) + .toColourspace('rgb16') + .png() + .toBuffer(); +``` ## webp diff --git a/lib/output.js b/lib/output.js index f1bba663a..d192b7aff 100644 --- a/lib/output.js +++ b/lib/output.js @@ -504,10 +504,14 @@ function jpeg (options) { /** * 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. * 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 * // Convert any input to full colour PNG output * const data = await sharp(input) @@ -520,6 +524,13 @@ function jpeg (options) { * .png({ palette: true }) * .toBuffer(); * + * @example + * // Output 16 bits per pixel RGB(A) + * const data = await sharp(input) + * .toColourspace('rgb16') + * .png() + * .toBuffer(); + * * @param {Object} [options] * @param {boolean} [options.progressive=false] - use progressive (interlace) scan * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest)