Skip to content
Check if JPEG images are progressive
JavaScript TypeScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
fixture Close #3 PR: Support weirdly constructed progressive image. Fixes #2 Jul 12, 2015
.editorconfig Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019
.gitattributes Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019
.gitignore Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019
.npmrc Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019
.travis.yml
index.d.ts Meta tweaks Apr 20, 2019
index.js Meta tweaks Apr 20, 2019
index.test-d.ts Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019
license Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019
package.json Meta tweaks Apr 20, 2019
readme.md Meta tweaks Apr 20, 2019
test.js Require Node.js 8, add TypeScript definition (#6) Apr 20, 2019

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 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/master/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

License

MIT © Sindre Sorhus

You can’t perform that action at this time.