Check if JPEG images are progressive
JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
fixture
.editorconfig
.gitattributes
.gitignore
.travis.yml
index.js
license
package.json
readme.md
test.js

readme.md

is-progressive Build Status

Check if JPEG images are progressive

Can be useful to make sure your images are progressive, which is important for performance:

Progressive JPEGs are better because they are faster. Appearing faster is being faster, and perceived speed is more important that actual speed. - Progressive JPEGs: a new best practice

The check is fast as it only reads a small part of the file.

Install

$ npm install --save is-progressive

Usage

const isProgressive = require('is-progressive');

isProgressive.file('baseline.jpg').then(progressive => {
	console.log(progressive);
	//=> false
});

isProgressive.fileSync('progressive.jpg');
//=> true
// check if a remote JPEG image is progressive
// without downloading the whole file
const https = require('https');
const isProgressive = require('is-progressive');
const url = 'https://raw.githubusercontent.com/sindresorhus/is-progressive/master/fixture/progressive.jpg';

https.get(url, res => {
	isProgressive.stream(res).then(progressive => {
		console.log(progressive);
		//=> true
	});
});

API

Prefer the file methods if you're dealing directly with files. Those methods are optimized to read in the least amount of bytes necessary to determine whether it's a progressive JPEG image.

.buffer(buffer)

Returns whether the buffer is a progressive JPEG image.

buffer

Type: Buffer

Buffer of a JPEG image.

Must be at least 65535 bytes when the file is larger than that.

.stream(stream)

Returns a Promise for a boolean indicating whether the file stream is a progressive JPEG image.

stream

Type: Object

Data stream.

.file(filepath)

Returns a Promise for a boolean indicating whether the file is a progressive JPEG image.

filepath

Type: string

Filepath to the image.

.fileSync(filepath)

Returns whether the buffer is a progressive JPEG.

filepath

Type: string

Filepath to the image.

Build-system integration

Don't use this with a build-system like gulp/grunt as you can easily make the images progressive with the imagemin (gulp/grunt-task) progressive option instead of just warning about it.

Related

License

MIT © Sindre Sorhus