From 74e3f73934df4fa8096fe87ce1b57b9cf0d50a5f Mon Sep 17 00:00:00 2001 From: Anton Marsden Date: Sat, 23 Jul 2022 21:33:44 +1200 Subject: [PATCH] Expand linear operation to allow use of per-channel arrays #3303 --- docs/api-operation.md | 26 +++++++++-- docs/search-index.json | 2 +- lib/constructor.js | 4 +- lib/operation.js | 43 +++++++++++++++--- src/operations.cc | 10 ++-- src/operations.h | 2 +- src/pipeline.cc | 6 +-- src/pipeline.h | 8 ++-- test/fixtures/expected/linear-per-channel.jpg | Bin 0 -> 164641 bytes test/unit/linear.js | 37 +++++++++++---- 10 files changed, 104 insertions(+), 34 deletions(-) create mode 100644 test/fixtures/expected/linear-per-channel.jpg diff --git a/docs/api-operation.md b/docs/api-operation.md index a435b2bf1..f5b03dc6b 100644 --- a/docs/api-operation.md +++ b/docs/api-operation.md @@ -466,14 +466,32 @@ Returns **Sharp** ## linear -Apply the linear formula a \* input + b to the image (levels adjustment) +Apply the linear formula `a` \* input + `b` to the image to adjust image levels. + +When a single number is provided, it will be used for all image channels. +When an array of numbers is provided, the array length must match the number of channels. ### Parameters -* `a` **[number][1]** multiplier (optional, default `1.0`) -* `b` **[number][1]** offset (optional, default `0.0`) +* `a` **([number][1] | [Array][7]<[number][1]>)** multiplier (optional, default `[]`) +* `b` **([number][1] | [Array][7]<[number][1]>)** offset (optional, default `[]`) - +### Examples + +```javascript +await sharp(input) + .linear(0.5, 2) + .toBuffer(); +``` + +```javascript +await sharp(rgbInput) + .linear( + [0.25, 0.5, 0.75], + [150, 100, 50] + ) + .toBuffer(); +``` * Throws **[Error][5]** Invalid parameters diff --git a/docs/search-index.json b/docs/search-index.json index dbfca9e96..cb1014ce5 100644 --- a/docs/search-index.json +++ b/docs/search-index.json @@ -1 +1 @@ -[{"t":"Prerequisites","d":"Node.js 14.15.0","k":"prerequisites node","l":"/install#prerequisites"},{"t":"Prebuilt binaries","d":"Ready-compiled sharp and libvips binaries are provided for use on the most common platforms macOS x64 10.13 macOS ARM64 Linux x64 glibc 2.17, musl 1.1.24, CPU with SSE4.2 Linux ARM64 glibc 2.17, musl","k":"prebuilt binaries compiled sharp libvips common platforms macos arm linux glibc musl cpu sse","l":"/install#prebuilt-binaries"},{"t":"Common problems","d":"The architecture and platform of Node.js used for npm install must be the same as the architecture and platform of Node.js used at runtime. See the cross-platform","k":"common problems architecture platform node npm install runtime cross","l":"/install#common-problems"},{"t":"Apple M1","d":"Prebuilt sharp and libvips binaries have been provided for macOS on ARM64 since sharp v0.29.0.","k":"apple prebuilt sharp libvips binaries macos arm","l":"/install#apple-m1"},{"t":"Custom libvips","d":"To use a custom, globally-installed version of libvips instead of the provided binaries, make sure it is at least the version listed under config.libvips in the package.json file and that it can be lo","k":"custom libvips globally installed version instead binaries listed config package json file","l":"/install#custom-libvips"},{"t":"Building from source","d":"This module will be compiled from source at npm install time when a globally-installed libvips is detected set the SHARP_IGNORE_GLOBAL_LIBVIPS environment variable to skip this, prebuilt sharp binarie","k":"building source module compiled npm install time globally installed libvips detected environment variable skip prebuilt sharp binarie","l":"/install#building-from-source"},{"t":"Custom prebuilt binaries","d":"This is an advanced approach that most people will not require.","k":"custom prebuilt binaries advanced approach people require","l":"/install#custom-prebuilt-binaries"},{"t":"Prebuilt sharp binaries","d":"To install the prebuilt sharp binaries from a custom URL, set the sharp_binary_host npm config option or the npm_config_sharp_binary_host environment variable. To install the prebuilt sharp binaries f","k":"prebuilt sharp binaries install custom url npm config option environment variable","l":"/install#prebuilt-sharp-binaries"},{"t":"Prebuilt libvips binaries","d":"To install the prebuilt libvips binaries from a custom URL, set the sharp_libvips_binary_host npm config option or the npm_config_sharp_libvips_binary_host environment variable. To install the prebuil","k":"prebuilt libvips binaries install custom url npm config option environment variable prebuil","l":"/install#prebuilt-libvips-binaries"},{"t":"Chinese mirror","d":"A mirror site based in China, provided by Alibaba, contains binaries for both sharp and libvips. To use this either set the following configuration sh npm config set sharp_binary_host https//npmmirror","k":"chinese mirror china alibaba binaries sharp libvips configuration npm config https npmmirror","l":"/install#chinese-mirror"},{"t":"FreeBSD","d":"The vips package must be installed before npm install is run. sh pkg install -y pkgconf vips sh cd /usr/ports/graphics/vips/ make install clean","k":"freebsd vips package installed npm install run pkg pkgconf usr ports graphics clean","l":"/install#freebsd"},{"t":"Linux memory allocator","d":"The default memory allocator on most glibc-based Linux systems e.g. Debian, Red Hat is unsuitable for long-running, multi-threaded processes that involve lots of small memory allocations. For this rea","k":"linux memory allocator glibc systems debian red hat long running multi threaded processes small allocations rea","l":"/install#linux-memory-allocator"},{"t":"Heroku","d":"Add the jemalloc buildpack to reduce the effects of memory fragmentation. Set NODE_MODULES_CACHE","k":"heroku add jemalloc buildpack reduce effects memory fragmentation","l":"/install#heroku"},{"t":"AWS Lambda","d":"The node_modules directory of the deployment package must include binaries for the Linux x64 platform. When building your deployment package on machines other than Linux x64 glibc, run the following a","k":"aws lambda nodemodules directory deployment package binaries linux platform building your machines glibc run","l":"/install#aws-lambda"},{"t":"webpack","d":"Ensure sharp is excluded from bundling via the externals configuration. js externals sharp commonjs sharp","k":"webpack sharp excluded bundling via externals configuration commonjs","l":"/install#webpack"},{"t":"esbuild","d":"Ensure sharp is excluded from bundling via the external","k":"esbuild sharp excluded bundling via external","l":"/install#esbuild"},{"t":"Fonts","d":"When creating text images or rendering SVG images that contain text elements, fontconfig is used to find the relevant fonts. On Windows and macOS systems, all system fonts are available for use. On ma","k":"fonts creating text images rendering svg contain elements fontconfig find relevant windows macos systems system available","l":"/install#fonts"},{"t":"Worker threads","d":"On some platforms, including glibc-based Linux, the main thread must call requiresharp _before_ worker threads are created. This is to ensure shared libraries remain loaded in memory until after all t","k":"worker threads platforms glibc linux main thread shared libraries remain loaded memory","l":"/install#worker-threads"},{"t":"Canvas and Windows","d":"The prebuilt binaries provided by canvas for Windows depend on the unmaintained GTK 2, last updated in 2011. These conflict with the modern, up-to-date binaries provided by sharp. If both modules are","k":"canvas windows prebuilt binaries depend gtk updated conflict modern sharp modules","l":"/install#canvas-and-windows"},{"t":"Sharp","d":"Constructor factory to create an instance of sharp, to which further methods are chained.","k":"sharp constructor factory create instance further methods chained","l":"/api-constructor#sharp"},{"t":"clone","d":"Take a snapshot of the Sharp instance, returning a new instance. Cloned instances inherit the input of their parent instance. This allows multiple output Streams and therefore multiple processing pipe","k":"clone snapshot sharp instance returning new cloned instances inherit input parent multiple output streams processing pipe","l":"/api-constructor#clone"},{"t":"metadata","d":"Fast access to uncached image metadata without decoding any compressed pixel data.","k":"metadata fast access uncached decoding compressed pixel data","l":"/api-input#metadata"},{"t":"stats","d":"Access to pixel-derived image statistics for every channel in the image. A Promise is returned when callback is not provided.","k":"stats access pixel derived statistics channel promise","l":"/api-input#stats"},{"t":"toFile","d":"Write output image data to a file.","k":"tofile write output data file","l":"/api-output#tofile"},{"t":"toBuffer","d":"Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.","k":"tobuffer write output buffer jpeg png webp avif tiff gif raw pixel data","l":"/api-output#tobuffer"},{"t":"withMetadata","d":"Include all metadata EXIF, XMP, IPTC from the input image in the output image. This will also convert to and add a web-friendly sRGB ICC profile unless a custom output profile is provided.","k":"withmetadata metadata exif xmp iptc input output convert add web friendly srgb icc profile custom","l":"/api-output#withmetadata"},{"t":"toFormat","d":"Force output to a given format.","k":"toformat force output format","l":"/api-output#toformat"},{"t":"jpeg","d":"Use these JPEG options for output image.","k":"jpeg output quality progressive optimisecoding optimizecoding mozjpeg optimisescans optimizescans force","l":"/api-output#jpeg"},{"t":"png","d":"Use these PNG options for output image.","k":"png output","l":"/api-output#png"},{"t":"webp","d":"Use these WebP options for output image.","k":"webp output quality alphaquality lossless nearlossless smartsubsample effort loop delay minsize mixed force","l":"/api-output#webp"},{"t":"gif","d":"Use these GIF options for the output image.","k":"gif output","l":"/api-output#gif"},{"t":"tiff","d":"Use these TIFF options for output image.","k":"tiff output","l":"/api-output#tiff"},{"t":"avif","d":"Use these AVIF options for output image.","k":"avif output","l":"/api-output#avif"},{"t":"heif","d":"Use these HEIF options for output image.","k":"heif output","l":"/api-output#heif"},{"t":"raw","d":"Force output to be raw, uncompressed pixel data. Pixel ordering is left-to-right, top-to-bottom, without padding. Channel ordering will be RGB or RGBA for non-greyscale colourspaces.","k":"raw force output uncompressed pixel data ordering left right top bottom padding channel rgb rgba greyscale colourspaces depth size overlap angle background skipblanks container layout centre center basename","l":"/api-output#raw"},{"t":"timeout","d":"Set a timeout for processing, in seconds. Use a value of zero to continue processing indefinitely, the default behaviour.","k":"timeout processing seconds zero continue indefinitely behaviour","l":"/api-output#timeout"},{"t":"resize","d":"Resize image to width, height or width x height.","k":"resize width height","l":"/api-resize#resize"},{"t":"extend","d":"Extends/pads the edges of the image with the provided background colour. This operation will always occur after resizing and extraction, if any.","k":"extend extends pads edges background colour operation resizing extraction","l":"/api-resize#extend"},{"t":"extract","d":"Extract/crop a region of the image.","k":"extract crop region","l":"/api-resize#extract"},{"t":"trim","d":"Trim boring pixels from all edges that contain values similar to the top-left pixel.","k":"trim boring pixels edges contain similar top left pixel","l":"/api-resize#trim"},{"t":"composite","d":"Composite images over the processed resized, extracted etc. image.","k":"composite images processed resized extracted","l":"/api-composite#composite"},{"t":"rotate","d":"Rotate the output image by either an explicit angle or auto-orient based on the EXIF Orientation tag.","k":"rotate output explicit angle auto orient exif orientation tag","l":"/api-operation#rotate"},{"t":"flip","d":"Flip the image about the vertical Y axis. This always occurs before rotation, if any. The use of flip implies the removal of the EXIF Orientation tag, if any.","k":"flip vertical axis rotation removal exif orientation tag","l":"/api-operation#flip"},{"t":"flop","d":"Flop the image about the horizontal X axis. This always occurs before rotation, if any. The use of flop implies the removal of the EXIF Orientation tag, if any.","k":"flop horizontal axis rotation removal exif orientation tag","l":"/api-operation#flop"},{"t":"affine","d":"Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any.","k":"affine transform operation resizing extraction rotation","l":"/api-operation#affine"},{"t":"sharpen","d":"Sharpen the image. When used without parameters, performs a fast, mild sharpen of the output image. When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colou","k":"sharpen parameters fast mild output sigma slower accurate channel lab colou","l":"/api-operation#sharpen"},{"t":"median","d":"Apply median filter. When used without parameters the default window is 3x3.","k":"median apply filter parameters window","l":"/api-operation#median"},{"t":"blur","d":"Blur the image.","k":"blur","l":"/api-operation#blur"},{"t":"flatten","d":"Merge alpha transparency channel, if any, with a background, then remove the alpha channel.","k":"flatten merge alpha transparency channel background remove","l":"/api-operation#flatten"},{"t":"gamma","d":"Apply a gamma correction by reducing the encoding darken pre-resize at a factor of 1/gamma then increasing the encoding brighten post-resize at a factor of gamma. This can improve the perceived bright","k":"gamma apply correction reducing encoding darken pre resize factor increasing brighten post improve perceived bright","l":"/api-operation#gamma"},{"t":"negate","d":"Produce the negative of the image.","k":"negate negative alpha","l":"/api-operation#negate"},{"t":"normalise","d":"Enhance output image contrast by stretching its luminance to cover the full dynamic range.","k":"normalise enhance output contrast stretching luminance cover full dynamic range","l":"/api-operation#normalise"},{"t":"normalize","d":"Alternative spelling of normalise.","k":"normalize normalise","l":"/api-operation#normalize"},{"t":"clahe","d":"Perform contrast limiting adaptive histogram equalization CLAHE10.","k":"clahe contrast limiting adaptive histogram equalization","l":"/api-operation#clahe"},{"t":"convolve","d":"Convolve the image with the specified kernel.","k":"convolve kernel","l":"/api-operation#convolve"},{"t":"threshold","d":"Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0.","k":"threshold pixel greater equal otherwise greyscale grayscale","l":"/api-operation#threshold"},{"t":"boolean","d":"Perform a bitwise boolean operation with operand image.","k":"boolean bitwise operation operand","l":"/api-operation#boolean"},{"t":"linear","d":"Apply the linear formula a input b to the image levels adjustment","k":"linear apply formula input levels adjustment","l":"/api-operation#linear"},{"t":"recomb","d":"Recomb the image with the specified matrix.","k":"recomb matrix","l":"/api-operation#recomb"},{"t":"modulate","d":"Transforms the image using brightness, saturation, hue rotation, and lightness. Brightness and lightness both operate on luminance, with the difference being that brightness is multiplicative whereas","k":"modulate transforms brightness saturation hue rotation lightness operate luminance difference being multiplicative whereas","l":"/api-operation#modulate"},{"t":"removeAlpha","d":"Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel.","k":"removealpha remove alpha channel","l":"/api-channel#removealpha"},{"t":"ensureAlpha","d":"Ensure the output image has an alpha transparency channel. If missing, the added alpha channel will have the specified transparency level, defaulting to fully-opaque 1. This is a no-op if the image al","k":"ensurealpha output alpha transparency channel missing added level defaulting fully opaque","l":"/api-channel#ensurealpha"},{"t":"extractChannel","d":"Extract a single channel from a multi-channel image.","k":"extractchannel extract single channel multi","l":"/api-channel#extractchannel"},{"t":"joinChannel","d":"Join one or more channels to the image. The meaning of the added channels depends on the output colourspace, set with toColourspace. By default the output image will be web-friendly sRGB, with additio","k":"joinchannel join one channels meaning added depends output colourspace tocolourspace web friendly srgb additio","l":"/api-channel#joinchannel"},{"t":"bandbool","d":"Perform a bitwise boolean operation on all input image channels bands to produce a single channel output image.","k":"bandbool bitwise boolean operation input channels bands single channel output","l":"/api-channel#bandbool"},{"t":"tint","d":"Tint the image using the provided chroma while preserving the image luminance. An alpha channel may be present and will be unchanged by the operation.","k":"tint chroma preserving luminance alpha channel present unchanged operation","l":"/api-colour#tint"},{"t":"greyscale","d":"Convert to 8-bit greyscale 256 shades of grey. This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use gamma with greyscale for the best results. By default th","k":"greyscale convert bit shades grey linear operation input colour space srgb gamma best results","l":"/api-colour#greyscale"},{"t":"grayscale","d":"Alternative spelling of greyscale.","k":"grayscale greyscale","l":"/api-colour#grayscale"},{"t":"pipelineColourspace","d":"Set the pipeline colourspace.","k":"pipeline colourspace","l":"/api-colour#pipelinecolourspace"},{"t":"pipelineColorspace","d":"Alternative spelling of pipelineColourspace.","k":"","l":"/api-colour#pipelinecolorspace"},{"t":"toColourspace","d":"Set the output colourspace. By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.","k":"tocolourspace output colourspace web friendly srgb additional channels interpreted alpha","l":"/api-colour#tocolourspace"},{"t":"toColorspace","d":"Alternative spelling of toColourspace.","k":"tocolorspace tocolourspace","l":"/api-colour#tocolorspace"},{"t":"format","d":"An Object containing nested boolean values representing the available input and output formats/methods.","k":"format object nested boolean representing available input output formats methods","l":"/api-utility#format"},{"t":"interpolators","d":"An Object containing the available interpolators and their proper values","k":"interpolators object available proper","l":"/api-utility#interpolators"},{"t":"versions","d":"An Object containing the version numbers of libvips and its dependencies.","k":"versions object version numbers libvips dependencies","l":"/api-utility#versions"},{"t":"vendor","d":"An Object containing the platform and architecture of the current and installed vendored binaries.","k":"vendor object platform architecture installed vendored binaries","l":"/api-utility#vendor"},{"t":"cache","d":"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, u","k":"cache limits libvips operation existing entries trimmed change method returns statistics memory files items","l":"/api-utility#cache"},{"t":"concurrency","d":"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 cr","k":"concurrency maximum number threads libvips process thread pool managed glib helps avoid overhead","l":"/api-utility#concurrency"},{"t":"queue","d":"An EventEmitter that emits a change event when a task is either","k":"queue eventemitter emits change event","l":"/api-utility#queue"},{"t":"counters","d":"Provides access to internal task counters.","k":"counters provides access internal","l":"/api-utility#counters"},{"t":"simd","d":"Get and set use of SIMD vector unit instructions. Requires libvips to have been compiled with liborc support.","k":"simd vector unit instructions libvips compiled liborc","l":"/api-utility#simd"}] \ No newline at end of file +[{"t":"Prerequisites","d":"Node.js 14.15.0","k":"prerequisites node","l":"/install#prerequisites"},{"t":"Prebuilt binaries","d":"Ready-compiled sharp and libvips binaries are provided for use on the most common platforms macOS x64 10.13 macOS ARM64 Linux x64 glibc 2.17, musl 1.1.24, CPU with SSE4.2 Linux ARM64 glibc 2.17, musl","k":"prebuilt binaries compiled sharp libvips common platforms macos arm linux glibc musl cpu sse","l":"/install#prebuilt-binaries"},{"t":"Common problems","d":"The architecture and platform of Node.js used for npm install must be the same as the architecture and platform of Node.js used at runtime. See the cross-platform","k":"common problems architecture platform node npm install runtime cross","l":"/install#common-problems"},{"t":"Apple M1","d":"Prebuilt sharp and libvips binaries have been provided for macOS on ARM64 since sharp v0.29.0.","k":"apple prebuilt sharp libvips binaries macos arm","l":"/install#apple-m1"},{"t":"Custom libvips","d":"To use a custom, globally-installed version of libvips instead of the provided binaries, make sure it is at least the version listed under config.libvips in the package.json file and that it can be lo","k":"custom libvips globally installed version instead binaries listed config package json file","l":"/install#custom-libvips"},{"t":"Building from source","d":"This module will be compiled from source at npm install time when a globally-installed libvips is detected set the SHARP_IGNORE_GLOBAL_LIBVIPS environment variable to skip this, prebuilt sharp binarie","k":"building source module compiled npm install time globally installed libvips detected environment variable skip prebuilt sharp binarie","l":"/install#building-from-source"},{"t":"Custom prebuilt binaries","d":"This is an advanced approach that most people will not require.","k":"custom prebuilt binaries advanced approach people require","l":"/install#custom-prebuilt-binaries"},{"t":"Prebuilt sharp binaries","d":"To install the prebuilt sharp binaries from a custom URL, set the sharp_binary_host npm config option or the npm_config_sharp_binary_host environment variable. To install the prebuilt sharp binaries f","k":"prebuilt sharp binaries install custom url npm config option environment variable","l":"/install#prebuilt-sharp-binaries"},{"t":"Prebuilt libvips binaries","d":"To install the prebuilt libvips binaries from a custom URL, set the sharp_libvips_binary_host npm config option or the npm_config_sharp_libvips_binary_host environment variable. To install the prebuil","k":"prebuilt libvips binaries install custom url npm config option environment variable prebuil","l":"/install#prebuilt-libvips-binaries"},{"t":"Chinese mirror","d":"A mirror site based in China, provided by Alibaba, contains binaries for both sharp and libvips. To use this either set the following configuration sh npm config set sharp_binary_host https//npmmirror","k":"chinese mirror china alibaba binaries sharp libvips configuration npm config https npmmirror","l":"/install#chinese-mirror"},{"t":"FreeBSD","d":"The vips package must be installed before npm install is run. sh pkg install -y pkgconf vips sh cd /usr/ports/graphics/vips/ make install clean","k":"freebsd vips package installed npm install run pkg pkgconf usr ports graphics clean","l":"/install#freebsd"},{"t":"Linux memory allocator","d":"The default memory allocator on most glibc-based Linux systems e.g. Debian, Red Hat is unsuitable for long-running, multi-threaded processes that involve lots of small memory allocations. For this rea","k":"linux memory allocator glibc systems debian red hat long running multi threaded processes small allocations rea","l":"/install#linux-memory-allocator"},{"t":"Heroku","d":"Add the jemalloc buildpack to reduce the effects of memory fragmentation. Set NODE_MODULES_CACHE","k":"heroku add jemalloc buildpack reduce effects memory fragmentation","l":"/install#heroku"},{"t":"AWS Lambda","d":"The node_modules directory of the deployment package must include binaries for the Linux x64 platform. When building your deployment package on machines other than Linux x64 glibc, run the following a","k":"aws lambda nodemodules directory deployment package binaries linux platform building your machines glibc run","l":"/install#aws-lambda"},{"t":"webpack","d":"Ensure sharp is excluded from bundling via the externals configuration. js externals sharp commonjs sharp","k":"webpack sharp excluded bundling via externals configuration commonjs","l":"/install#webpack"},{"t":"esbuild","d":"Ensure sharp is excluded from bundling via the external","k":"esbuild sharp excluded bundling via external","l":"/install#esbuild"},{"t":"Fonts","d":"When creating text images or rendering SVG images that contain text elements, fontconfig is used to find the relevant fonts. On Windows and macOS systems, all system fonts are available for use. On ma","k":"fonts creating text images rendering svg contain elements fontconfig find relevant windows macos systems system available","l":"/install#fonts"},{"t":"Worker threads","d":"On some platforms, including glibc-based Linux, the main thread must call requiresharp _before_ worker threads are created. This is to ensure shared libraries remain loaded in memory until after all t","k":"worker threads platforms glibc linux main thread shared libraries remain loaded memory","l":"/install#worker-threads"},{"t":"Canvas and Windows","d":"The prebuilt binaries provided by canvas for Windows depend on the unmaintained GTK 2, last updated in 2011. These conflict with the modern, up-to-date binaries provided by sharp. If both modules are","k":"canvas windows prebuilt binaries depend gtk updated conflict modern sharp modules","l":"/install#canvas-and-windows"},{"t":"Sharp","d":"Constructor factory to create an instance of sharp, to which further methods are chained.","k":"sharp constructor factory create instance further methods chained","l":"/api-constructor#sharp"},{"t":"clone","d":"Take a snapshot of the Sharp instance, returning a new instance. Cloned instances inherit the input of their parent instance. This allows multiple output Streams and therefore multiple processing pipe","k":"clone snapshot sharp instance returning new cloned instances inherit input parent multiple output streams processing pipe","l":"/api-constructor#clone"},{"t":"metadata","d":"Fast access to uncached image metadata without decoding any compressed pixel data.","k":"metadata fast access uncached decoding compressed pixel data","l":"/api-input#metadata"},{"t":"stats","d":"Access to pixel-derived image statistics for every channel in the image. A Promise is returned when callback is not provided.","k":"stats access pixel derived statistics channel promise","l":"/api-input#stats"},{"t":"toFile","d":"Write output image data to a file.","k":"tofile write output data file","l":"/api-output#tofile"},{"t":"toBuffer","d":"Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.","k":"tobuffer write output buffer jpeg png webp avif tiff gif raw pixel data","l":"/api-output#tobuffer"},{"t":"withMetadata","d":"Include all metadata EXIF, XMP, IPTC from the input image in the output image. This will also convert to and add a web-friendly sRGB ICC profile unless a custom output profile is provided.","k":"withmetadata metadata exif xmp iptc input output convert add web friendly srgb icc profile custom","l":"/api-output#withmetadata"},{"t":"toFormat","d":"Force output to a given format.","k":"toformat force output format","l":"/api-output#toformat"},{"t":"jpeg","d":"Use these JPEG options for output image.","k":"jpeg output quality progressive optimisecoding optimizecoding mozjpeg optimisescans optimizescans force","l":"/api-output#jpeg"},{"t":"png","d":"Use these PNG options for output image.","k":"png output","l":"/api-output#png"},{"t":"webp","d":"Use these WebP options for output image.","k":"webp output quality alphaquality lossless nearlossless smartsubsample effort loop delay minsize mixed force","l":"/api-output#webp"},{"t":"gif","d":"Use these GIF options for the output image.","k":"gif output","l":"/api-output#gif"},{"t":"tiff","d":"Use these TIFF options for output image.","k":"tiff output","l":"/api-output#tiff"},{"t":"avif","d":"Use these AVIF options for output image.","k":"avif output","l":"/api-output#avif"},{"t":"heif","d":"Use these HEIF options for output image.","k":"heif output","l":"/api-output#heif"},{"t":"raw","d":"Force output to be raw, uncompressed pixel data. Pixel ordering is left-to-right, top-to-bottom, without padding. Channel ordering will be RGB or RGBA for non-greyscale colourspaces.","k":"raw force output uncompressed pixel data ordering left right top bottom padding channel rgb rgba greyscale colourspaces depth size overlap angle background skipblanks container layout centre center basename","l":"/api-output#raw"},{"t":"timeout","d":"Set a timeout for processing, in seconds. Use a value of zero to continue processing indefinitely, the default behaviour.","k":"timeout processing seconds zero continue indefinitely behaviour","l":"/api-output#timeout"},{"t":"resize","d":"Resize image to width, height or width x height.","k":"resize width height","l":"/api-resize#resize"},{"t":"extend","d":"Extends/pads the edges of the image with the provided background colour. This operation will always occur after resizing and extraction, if any.","k":"extend extends pads edges background colour operation resizing extraction","l":"/api-resize#extend"},{"t":"extract","d":"Extract/crop a region of the image.","k":"extract crop region","l":"/api-resize#extract"},{"t":"trim","d":"Trim boring pixels from all edges that contain values similar to the top-left pixel.","k":"trim boring pixels edges contain similar top left pixel","l":"/api-resize#trim"},{"t":"composite","d":"Composite images over the processed resized, extracted etc. image.","k":"composite images processed resized extracted","l":"/api-composite#composite"},{"t":"rotate","d":"Rotate the output image by either an explicit angle or auto-orient based on the EXIF Orientation tag.","k":"rotate output explicit angle auto orient exif orientation tag","l":"/api-operation#rotate"},{"t":"flip","d":"Flip the image about the vertical Y axis. This always occurs before rotation, if any. The use of flip implies the removal of the EXIF Orientation tag, if any.","k":"flip vertical axis rotation removal exif orientation tag","l":"/api-operation#flip"},{"t":"flop","d":"Flop the image about the horizontal X axis. This always occurs before rotation, if any. The use of flop implies the removal of the EXIF Orientation tag, if any.","k":"flop horizontal axis rotation removal exif orientation tag","l":"/api-operation#flop"},{"t":"affine","d":"Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any.","k":"affine transform operation resizing extraction rotation","l":"/api-operation#affine"},{"t":"sharpen","d":"Sharpen the image. When used without parameters, performs a fast, mild sharpen of the output image. When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colou","k":"sharpen parameters fast mild output sigma slower accurate channel lab colou","l":"/api-operation#sharpen"},{"t":"median","d":"Apply median filter. When used without parameters the default window is 3x3.","k":"median apply filter parameters window","l":"/api-operation#median"},{"t":"blur","d":"Blur the image.","k":"blur","l":"/api-operation#blur"},{"t":"flatten","d":"Merge alpha transparency channel, if any, with a background, then remove the alpha channel.","k":"flatten merge alpha transparency channel background remove","l":"/api-operation#flatten"},{"t":"gamma","d":"Apply a gamma correction by reducing the encoding darken pre-resize at a factor of 1/gamma then increasing the encoding brighten post-resize at a factor of gamma. This can improve the perceived bright","k":"gamma apply correction reducing encoding darken pre resize factor increasing brighten post improve perceived bright","l":"/api-operation#gamma"},{"t":"negate","d":"Produce the negative of the image.","k":"negate negative alpha","l":"/api-operation#negate"},{"t":"normalise","d":"Enhance output image contrast by stretching its luminance to cover the full dynamic range.","k":"normalise enhance output contrast stretching luminance cover full dynamic range","l":"/api-operation#normalise"},{"t":"normalize","d":"Alternative spelling of normalise.","k":"normalize normalise","l":"/api-operation#normalize"},{"t":"clahe","d":"Perform contrast limiting adaptive histogram equalization CLAHE10.","k":"clahe contrast limiting adaptive histogram equalization","l":"/api-operation#clahe"},{"t":"convolve","d":"Convolve the image with the specified kernel.","k":"convolve kernel","l":"/api-operation#convolve"},{"t":"threshold","d":"Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0.","k":"threshold pixel greater equal otherwise greyscale grayscale","l":"/api-operation#threshold"},{"t":"boolean","d":"Perform a bitwise boolean operation with operand image.","k":"boolean bitwise operation operand","l":"/api-operation#boolean"},{"t":"linear","d":"Apply the linear formula a input b to the image to adjust image levels.","k":"linear apply formula input adjust levels","l":"/api-operation#linear"},{"t":"recomb","d":"Recomb the image with the specified matrix.","k":"recomb matrix","l":"/api-operation#recomb"},{"t":"modulate","d":"Transforms the image using brightness, saturation, hue rotation, and lightness. Brightness and lightness both operate on luminance, with the difference being that brightness is multiplicative whereas","k":"modulate transforms brightness saturation hue rotation lightness operate luminance difference being multiplicative whereas","l":"/api-operation#modulate"},{"t":"removeAlpha","d":"Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel.","k":"removealpha remove alpha channel","l":"/api-channel#removealpha"},{"t":"ensureAlpha","d":"Ensure the output image has an alpha transparency channel. If missing, the added alpha channel will have the specified transparency level, defaulting to fully-opaque 1. This is a no-op if the image al","k":"ensurealpha output alpha transparency channel missing added level defaulting fully opaque","l":"/api-channel#ensurealpha"},{"t":"extractChannel","d":"Extract a single channel from a multi-channel image.","k":"extractchannel extract single channel multi","l":"/api-channel#extractchannel"},{"t":"joinChannel","d":"Join one or more channels to the image. The meaning of the added channels depends on the output colourspace, set with toColourspace. By default the output image will be web-friendly sRGB, with additio","k":"joinchannel join one channels meaning added depends output colourspace tocolourspace web friendly srgb additio","l":"/api-channel#joinchannel"},{"t":"bandbool","d":"Perform a bitwise boolean operation on all input image channels bands to produce a single channel output image.","k":"bandbool bitwise boolean operation input channels bands single channel output","l":"/api-channel#bandbool"},{"t":"tint","d":"Tint the image using the provided chroma while preserving the image luminance. An alpha channel may be present and will be unchanged by the operation.","k":"tint chroma preserving luminance alpha channel present unchanged operation","l":"/api-colour#tint"},{"t":"greyscale","d":"Convert to 8-bit greyscale 256 shades of grey. This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use gamma with greyscale for the best results. By default th","k":"greyscale convert bit shades grey linear operation input colour space srgb gamma best results","l":"/api-colour#greyscale"},{"t":"grayscale","d":"Alternative spelling of greyscale.","k":"grayscale greyscale","l":"/api-colour#grayscale"},{"t":"pipelineColourspace","d":"Set the pipeline colourspace.","k":"pipeline colourspace","l":"/api-colour#pipelinecolourspace"},{"t":"pipelineColorspace","d":"Alternative spelling of pipelineColourspace.","k":"","l":"/api-colour#pipelinecolorspace"},{"t":"toColourspace","d":"Set the output colourspace. By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.","k":"tocolourspace output colourspace web friendly srgb additional channels interpreted alpha","l":"/api-colour#tocolourspace"},{"t":"toColorspace","d":"Alternative spelling of toColourspace.","k":"tocolorspace tocolourspace","l":"/api-colour#tocolorspace"},{"t":"format","d":"An Object containing nested boolean values representing the available input and output formats/methods.","k":"format object nested boolean representing available input output formats methods","l":"/api-utility#format"},{"t":"interpolators","d":"An Object containing the available interpolators and their proper values","k":"interpolators object available proper","l":"/api-utility#interpolators"},{"t":"versions","d":"An Object containing the version numbers of libvips and its dependencies.","k":"versions object version numbers libvips dependencies","l":"/api-utility#versions"},{"t":"vendor","d":"An Object containing the platform and architecture of the current and installed vendored binaries.","k":"vendor object platform architecture installed vendored binaries","l":"/api-utility#vendor"},{"t":"cache","d":"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, u","k":"cache limits libvips operation existing entries trimmed change method returns statistics memory files items","l":"/api-utility#cache"},{"t":"concurrency","d":"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 cr","k":"concurrency maximum number threads libvips process thread pool managed glib helps avoid overhead","l":"/api-utility#concurrency"},{"t":"queue","d":"An EventEmitter that emits a change event when a task is either","k":"queue eventemitter emits change event","l":"/api-utility#queue"},{"t":"counters","d":"Provides access to internal task counters.","k":"counters provides access internal","l":"/api-utility#counters"},{"t":"simd","d":"Get and set use of SIMD vector unit instructions. Requires libvips to have been compiled with liborc support.","k":"simd vector unit instructions libvips compiled liborc","l":"/api-utility#simd"}] \ No newline at end of file diff --git a/lib/constructor.js b/lib/constructor.js index c4c2f2d7f..0350807e6 100644 --- a/lib/constructor.js +++ b/lib/constructor.js @@ -319,8 +319,8 @@ const Sharp = function (input, options) { tileId: 'https://example.com/iiif', tileBasename: '', timeoutSeconds: 0, - linearA: 1, - linearB: 0, + linearA: [], + linearB: [], // Function to notify of libvips warnings debuglog: warning => { this.emit('warning', warning); diff --git a/lib/operation.js b/lib/operation.js index e9e7bee47..49f8d0d1f 100644 --- a/lib/operation.js +++ b/lib/operation.js @@ -644,26 +644,55 @@ function boolean (operand, operator, options) { } /** - * Apply the linear formula a * input + b to the image (levels adjustment) - * @param {number} [a=1.0] multiplier - * @param {number} [b=0.0] offset + * Apply the linear formula `a` * input + `b` to the image to adjust image levels. + * + * When a single number is provided, it will be used for all image channels. + * When an array of numbers is provided, the array length must match the number of channels. + * + * @example + * await sharp(input) + * .linear(0.5, 2) + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .linear( + * [0.25, 0.5, 0.75], + * [150, 100, 50] + * ) + * .toBuffer(); + * + * @param {(number|number[])} [a=[]] multiplier + * @param {(number|number[])} [b=[]] offset * @returns {Sharp} * @throws {Error} Invalid parameters */ function linear (a, b) { + if (!is.defined(a) && is.number(b)) { + a = 1.0; + } else if (is.number(a) && !is.defined(b)) { + b = 0.0; + } if (!is.defined(a)) { - this.options.linearA = 1.0; + this.options.linearA = []; } else if (is.number(a)) { + this.options.linearA = [a]; + } else if (Array.isArray(a) && a.length && a.every(is.number)) { this.options.linearA = a; } else { - throw is.invalidParameterError('a', 'numeric', a); + throw is.invalidParameterError('a', 'number or array of numbers', a); } if (!is.defined(b)) { - this.options.linearB = 0.0; + this.options.linearB = []; } else if (is.number(b)) { + this.options.linearB = [b]; + } else if (Array.isArray(b) && b.length && b.every(is.number)) { this.options.linearB = b; } else { - throw is.invalidParameterError('b', 'numeric', b); + throw is.invalidParameterError('b', 'number or array of numbers', b); + } + if (this.options.linearA.length !== this.options.linearB.length) { + throw new Error('Expected a and b to be arrays of the same length'); } return this; } diff --git a/src/operations.cc b/src/operations.cc index a431691bd..8c3dc81ac 100644 --- a/src/operations.cc +++ b/src/operations.cc @@ -306,10 +306,14 @@ namespace sharp { /* * Calculate (a * in + b) */ - VImage Linear(VImage image, double const a, double const b) { - if (HasAlpha(image)) { + VImage Linear(VImage image, std::vector const a, std::vector const b) { + size_t const bands = static_cast(image.bands()); + if (a.size() > bands) { + throw VError("Band expansion using linear is unsupported"); + } + if (HasAlpha(image) && a.size() != bands && (a.size() == 1 || a.size() == bands - 1 || bands - 1 == 1)) { // Separate alpha channel - VImage alpha = image[image.bands() - 1]; + VImage alpha = image[bands - 1]; return RemoveAlpha(image).linear(a, b).bandjoin(alpha); } else { return image.linear(a, b); diff --git a/src/operations.h b/src/operations.h index fe0dcd991..b05453971 100644 --- a/src/operations.h +++ b/src/operations.h @@ -90,7 +90,7 @@ namespace sharp { /* * Linear adjustment (a * in + b) */ - VImage Linear(VImage image, double const a, double const b); + VImage Linear(VImage image, std::vector const a, std::vector const b); /* * Recomb with a Matrix of the given bands/channel size. diff --git a/src/pipeline.cc b/src/pipeline.cc index 60c2baea8..71b0de794 100644 --- a/src/pipeline.cc +++ b/src/pipeline.cc @@ -688,7 +688,7 @@ class PipelineWorker : public Napi::AsyncWorker { } // Linear adjustment (a * in + b) - if (baton->linearA != 1.0 || baton->linearB != 0.0) { + if (!baton->linearA.empty()) { image = sharp::Linear(image, baton->linearA, baton->linearB); } @@ -1454,8 +1454,8 @@ Napi::Value pipeline(const Napi::CallbackInfo& info) { baton->trimThreshold = sharp::AttrAsDouble(options, "trimThreshold"); baton->gamma = sharp::AttrAsDouble(options, "gamma"); baton->gammaOut = sharp::AttrAsDouble(options, "gammaOut"); - baton->linearA = sharp::AttrAsDouble(options, "linearA"); - baton->linearB = sharp::AttrAsDouble(options, "linearB"); + baton->linearA = sharp::AttrAsVectorOfDouble(options, "linearA"); + baton->linearB = sharp::AttrAsVectorOfDouble(options, "linearB"); baton->greyscale = sharp::AttrAsBool(options, "greyscale"); baton->normalise = sharp::AttrAsBool(options, "normalise"); baton->claheWidth = sharp::AttrAsUint32(options, "claheWidth"); diff --git a/src/pipeline.h b/src/pipeline.h index 865987052..8577d3532 100644 --- a/src/pipeline.h +++ b/src/pipeline.h @@ -100,8 +100,8 @@ struct PipelineBaton { double trimThreshold; int trimOffsetLeft; int trimOffsetTop; - double linearA; - double linearB; + std::vector linearA; + std::vector linearB; double gamma; double gammaOut; bool greyscale; @@ -251,8 +251,8 @@ struct PipelineBaton { trimThreshold(0.0), trimOffsetLeft(0), trimOffsetTop(0), - linearA(1.0), - linearB(0.0), + linearA{}, + linearB{}, gamma(0.0), greyscale(false), normalise(false), diff --git a/test/fixtures/expected/linear-per-channel.jpg b/test/fixtures/expected/linear-per-channel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13cef2b8af53a2db222440439c8071291cc9f1ec GIT binary patch literal 164641 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 literal 0 HcmV?d00001 diff --git a/test/unit/linear.js b/test/unit/linear.js index 17d9c5e77..1155ac157 100644 --- a/test/unit/linear.js +++ b/test/unit/linear.js @@ -65,15 +65,34 @@ describe('Linear adjustment', function () { }); }); - it('Invalid linear arguments', function () { - assert.throws(function () { - sharp(fixtures.inputPngOverlayLayer1) - .linear('foo'); - }); + it('per channel level adjustment', function (done) { + sharp(fixtures.inputWebP) + .linear([0.25, 0.5, 0.75], [150, 100, 50]).toBuffer(function (err, data, info) { + if (err) throw err; + fixtures.assertSimilar(fixtures.expected('linear-per-channel.jpg'), data, done); + }); + }); - assert.throws(function () { - sharp(fixtures.inputPngOverlayLayer1) - .linear(undefined, { bar: 'baz' }); - }); + it('Invalid linear arguments', function () { + assert.throws( + () => sharp().linear('foo'), + /Expected number or array of numbers for a but received foo of type string/ + ); + assert.throws( + () => sharp().linear(undefined, { bar: 'baz' }), + /Expected number or array of numbers for b but received \[object Object\] of type object/ + ); + assert.throws( + () => sharp().linear([], [1]), + /Expected number or array of numbers for a but received {2}of type object/ + ); + assert.throws( + () => sharp().linear([1, 2], [1]), + /Expected a and b to be arrays of the same length/ + ); + assert.throws( + () => sharp().linear([1]), + /Expected a and b to be arrays of the same length/ + ); }); });