Skip to content

caub/im-optim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple image-optimizer for png, jpg, svg

uses:

  • mozjpeg
  • pngquant+optipng
  • svgo

API

var imOptim = require('im-optim');
// imOptim(streamOrBuffer [, contentType]) -> {stream:optimizedStream, size}
// imOptim.pngOptim(streamOrBuffer) -> {stream:optimizedStream, size}
// imOptim.jpgOptim(streamOrBuffer) -> {stream:optimizedStream, size}
// imOptim.svgOptim(streamOrBuffer) -> {stream:optimizedStream, size}

Usage example

var imOptim = require('im-optim');
var fetch = require('node-fetch');

app.get('/:url', (req, res) => { // optimizer proxy: fetch url, optimize and send back

	fetch(req.params.url)
	.then(s => imOptim(s, s.headers.get('content-type'))
		.then(({stream, size}) => {
			res.setHeader('content-type', s.headers.get('content-type'));
			res.setHeader('content-length', size); // not mandatory
			stream.pipe(res);
		})
	})
	.catch(e => res.send(e));
})