image-type
    TypeScript icon, indicating that this package has built-in type declarations

    4.1.0 • Public • Published

    image-type Build Status

    Detect the image type of a Buffer/Uint8Array

    See the file-type module for more file types and a CLI.

    Install

    $ npm install image-type
    

    Usage

    Node.js
    const readChunk = require('read-chunk');
    const imageType = require('image-type');
     
    const buffer = readChunk.sync('unicorn.png', 0, 12);
     
    imageType(buffer);
    //=> {ext: 'png', mime: 'image/png'}

    Or from a remote location:

    const http = require('http');
    const imageType = require('image-type');
     
    const url = 'https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif';
     
    http.get(url, response => {
        response.on('readable', () => {
            const chunk = response.read(imageType.minimumBytes);
            response.destroy();
            console.log(imageType(chunk));
            //=> {ext: 'gif', mime: 'image/gif'}
        });
    });
    Browser
    const xhr = new XMLHttpRequest();
    xhr.open('GET', 'unicorn.png');
    xhr.responseType = 'arraybuffer';
     
    xhr.onload = () => {
        imageType(new Uint8Array(this.response));
        //=> {ext: 'png', mime: 'image/png'}
    };
     
    xhr.send();

    API

    imageType(input)

    Returns an Object with:

    Or null when there is no match.

    input

    Type: Buffer | Uint8Array

    It only needs the first .minimumBytes bytes.

    imageType.minimumBytes

    Type: number

    The minimum amount of bytes needed to detect a file type. Currently, it's 4100 bytes, but it can change, so don't hardcode it.

    Supported file types

    SVG isn't included as it requires the whole file to be read, but you can get it here.

    License

    MIT © Sindre Sorhus

    Install

    npm i image-type

    DownloadsWeekly Downloads

    62,115

    Version

    4.1.0

    License

    MIT

    Unpacked Size

    7.16 kB

    Total Files

    5

    Last publish

    Collaborators

    • sindresorhus