1.0.0 • Published 5 years ago

image-dimensions-stream v1.0.0

Weekly downloads
68
License
MIT
Repository
github
Last release
5 years ago

image-dimensions-stream

A Node module to get dimensions of any image file stream

Supported formats

  • BMP
  • GIF
  • JPEG
  • PNG
  • PSD
  • DDS

Upcoming

  • SWF
  • CUR
  • ICO
  • ICNS
  • TIFF
  • WebP
  • SVG

Programmatic Usage

yarn add image-dimensions-stream

Example

const ImageDimensionsStream = require('image-dimensions-stream');
const pipeline = util.promisify(require('stream').pipeline);

async function main() {
  const sizeStream = new ImageDimensionsStream();
  let result = {
    mime: null,
    dimensions: null,
  };

  sizeStream.on('mime', (mime) => {
    console.log('mime:', mime);
    result.mime = mime;
  });

  sizeStream.on('dimensions', (dimensions) => {
    console.log('dimensions:', dimensions);
    result.dimensions = dimensions;
  });

  await pipeline(fs.createReadStream('images/funny-cats.png'), sizeStream, fs.createWriteStream('/dev/null'));

  return result;
}

main().then(console.log).catch(console.error);

Options

KeyTypeDefaultDescription
requireMimeboolean functiontruedestroy stream if mime can't be found
requireDimensionsboolean functiontruedestroy stream if dimensions can't be found
exifboolean functionfalseuse EXIF (Orientation) data if available
requireValidExifboolean functionfalsedestroy stream on invalid EXIF data otherwise just skip EXIF block. Only useful if exif option returns true
maxMimeChunkOffsetnumberMinimum value possibleWhether to destroy the stream if we couldn't detect mime type after reading this amount of bytes
maxMimeBufferSizenumber in bytes4100Maximum buffer size when detecting mime type
maxDimensionsBufferSizenumber in bytes64000Maximum buffer size when detecting dimensions

Credits

image-size for test images and file structures

1.0.0

5 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago