Skip to content

Unified method of retrieving an ImageData instance from an image, in both the browser and Node.js, asynchronously or synchronously

License

Notifications You must be signed in to change notification settings

andreekeberg/imagedata

Repository files navigation

ImageData

Version Total Downloads License

Unified method of retrieving an ImageData instance from an image, in both the browser and Node.js, asynchronously or synchronously. Also exports an ImageData polyfill in Node.js, allowing you to type check instances in both environments.

An ImageData object always contains the following properties:

data

Uint8ClampedArray representing a one-dimensional array containing the data in the RGBA order, with integer values between 0 and 255 (inclusive).

width

Unsigned long representing the actual width, in pixels, of the ImageData.

height

Unsigned long representing the actual height, in pixels, of the ImageData.

Supported formats

  • jpeg
  • png
  • gif
  • bmp
  • tiff

Installation

Using npm

npm install @andreekeberg/imagedata

Using yarn

yarn add @andreekeberg/imagedata

Getting started

Import as an ES6 module

import { get, getSync } from '@andreekeberg/imagedata'

Import as a CommonJS module

const { get, getSync } = require('@andreekeberg/imagedata')

Usage (Browser)

Asynchronously

Available input types

Type Description
string Path to image file
HTMLImageElement Reference to an <img> element
File Generally returned from an <input> element
Blob Raw binary data blob

Example

get('image.jpg', (error, data) => {
    if (error) {
        console.log(error)
    } else {
        console.log(data)
    }
})

Synchronously

Available input types

Type Description
HTMLImageElement Reference to an <img> element

Throws an Error if the provided image has not completed loading

Example

const image = document.querySelector('img')

try {
    console.log(getSync(image))
} catch(error) {
    console.log(error)
}

Usage (Node.js)

Asynchronously

Available input types

Type Description
string Path to image file
Buffer Created from fs.readFile or fs.readFileSync
fs.ReadStream Created from fs.createReadStream

Example

get('image.jpg', (error, data) => {
    if (error) {
        console.log(error)
    } else {
        console.log(data)
    }
})

Synchronously

Available input types

Type Description
string Path to image file
Buffer Created from fs.readFile or fs.readFileSync

Example

try {
    console.log(getSync('image.jpg'))
} catch(error) {
    console.log(error)
}

Documentation

Contributing

Read the contribution guidelines.

Changelog

Refer to the changelog for a full history of the project.

License

ImageData is licensed under the MIT license.