npm explorer

image-type

v6.0.0TypeScript

Detect the image type of an ArrayBuffer/Uint8Array

imagepicturephototypedetectcheckisexifbinarybuffer
138.3K/weekUpdated 8 months agoMITUnpacked: 7.3 KB
Published by Sindre Sorhus
npm install image-type
RepositoryHomepagenpm

image-type

> Detect the image type of an ArrayBuffer/Uint8Array

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

Install

``sh
npm install image-type
`

Usage

##### Node.js

`js
import {readChunk} from 'read-chunk';
import imageType, {minimumBytes} from 'image-type';

const buffer = await readChunk('unicorn.png', {length: minimumBytes});

await imageType(buffer);
//=> {ext: 'png', mime: 'image/png'}
`

Or from a remote location:

`js
import https from 'node:https';
import imageType, {minimumBytes} from 'image-type';

const url = 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg';

https.get(url, response => {
response.on('readable', () => {
(async () => {
const chunk = response.read(minimumBytes);
response.destroy();
console.log(await imageType(chunk));
//=> {ext: 'jpg', mime: 'image/jpeg'}
})();
});
});
`

##### Browser

`js
const xhr = new XMLHttpRequest();
xhr.open('GET', 'unicorn.png');
xhr.responseType = 'arraybuffer';

xhr.onload = () => {
(async () => {
await imageType(new Uint8Array(this.response));
//=> {ext: 'png', mime: 'image/png'}
})();
};

xhr.send();
`

API

$3

Returns an Promise with:

- ext - One of the supported file types
-
mime - The MIME type

Or undefined when there is no match.

#### input

Type: ArrayBuffer | Uint8Array

It only needs the first minimumBytes amount of bytes.

$3

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

- jpg
-
png
-
gif
-
webp
-
flif
-
cr2
-
tif
-
bmp
-
jxr
-
psd
-
ico)
-
bpg
-
jp2 - JPEG 2000
-
jpm - JPEG 2000
-
jpx - JPEG 2000
-
heic
-
cur)
-
dcm` - DICOM Image File

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

Related

- file-type - Detect the type of a file
- image-dimensions - Get the dimensions of an image

image-type - npm explorer