All Projects → sindresorhus → Is Progressive

sindresorhus / Is Progressive

Licence: mit
Check if JPEG images are progressive

Programming Languages

javascript
184084 projects - #8 most used programming language

is-progressive

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 is-progressive

Usage

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

(async () => {
	console.log(await isProgressive.file('baseline.jpg'));
	//=> 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/main/fixture/progressive.jpg';

https.get(url, async response => {
	console.log(await isProgressive.stream(response));
	//=> 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<boolean> indicating whether the file stream is a progressive JPEG image.

stream

Type: stream.Readable

Data stream with a JPEG image.

.file(filePath)

Returns a Promise<boolean> indicating whether the file at the filePath is a progressive JPEG image.

filePath

Type: string

File path to the image.

.fileSync(filePath)

Whether the the file at the filePath is a progressive JPEG.

filePath

Type: string

File path 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].