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 = ;const imageType = ; const buffer = readChunk; ;//=> {ext: 'png', mime: 'image/png'}
Or from a remote location:
const http = ;const imageType = ; const url = 'https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif'; http;
Browser
const xhr = ;xhr;xhrresponseType = 'arraybuffer'; xhr { ; //=> {ext: 'png', mime: 'image/png'}}; xhr;
API
imageType(input)
Returns an Object
with:
ext
- One of the supported file typesmime
- The MIME type
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
jpg
png
gif
webp
flif
cr2
tif
bmp
jxr
psd
ico
bpg
jp2
- JPEG 2000jpm
- JPEG 2000jpx
- JPEG 2000heic
cur
dcm
- DICOM Image File
SVG isn't included as it requires the whole file to be read, but you can get it here.
License
MIT © Sindre Sorhus