Image processing and manipulation in JavaScript.
$ npm install image-js
The following formats can be loaded by image-js:
- PNG (8 or 16 bits, color or greyscale, with or without alpha)
- JPEG
- TIFF (8 or 16 bits, greyscale)
The following formats can be saved by image-js:
- PNG (8 or 16 bits)
- JPEG
- BMP (black and white)
image-js was developed to be used in scientific applications where we often
have to work on images that have more that 8 bits per channel.
Unlike many other libraries, if a 16-bit greyscale PNG is decoded, the resulting image has only one 16-bit channel and no pixel information is lost.
image-js can work with images that have 1 (binary), 8, 16 or 32 bits per channel.
It can accept an arbitrary amount of color channels (usually 1 or 3) and can handle an additional alpha component.
image-js can be used to do simple image manipulations such as:
- Resize
- Crop
- Rotate
- Convert to greyscale
- Invert colors
- Gaussian blur
- Extract individual channels (red, green or blue)
- And more...
image-js implements a number of functions to get statistics about an image:
- Histogram
- Max, min, median value
- And more ...
- Image thresholding (otsu, triangle, ...)
- Regions of interest
- Convolution with custom kernel
- Sobel filter
- Morphological transformations (open, close, erode, ...)
Contributions to code or documentation are welcome! Here are a few tips on how to setup a development environment for image-js.
The canvas
native addon library is required for all tests to pass. You can
follow the instructions to install it on your OS here.