Skip to content

Latest commit

 

History

History
52 lines (34 loc) · 2.42 KB

README.md

File metadata and controls

52 lines (34 loc) · 2.42 KB

mozjpeg-stream

The awesome JPEG minifying power of mozjpeg wrapped up as a .pipe friendly node duplex stream.

Grab flying pugs over http and automagically minify them with mozjpeg before letting them near your hard drive.

var fs = require('fs')
var http = require('http')
var mozjpeg = require('mozjpeg-stream')

http.get('http://aboutpug.com/wp-content/uploads/2015/01/flying-monkey-cute-pug.jpg')
  .on('response', function (resp) {
    resp
      .pipe(mozjpeg())
      .pipe(fs.createWriteStream('flying-pug.min.jpg'))
  })

And so this chunky 1.5M of raw pug

A heavy, 1.5M pug

...becomes 132K of optimal, progressive, mozjpeg'd, flying pug:

a svelte, 132K, progressive, mozjpeg pug

mozjpeg sets the compression quality to 75 by default, but you can adjust it:

fs.createReadStream('flying-pug.jpg')
  .pipe(mozjpeg({quality: 50}))
  .pipe(fs.createWriteStream('flying-pug.q50.jpg'))

So you can wring out further byte savings, and for many pictures, nothing of importance is lost...

84K of -quality 50, piped, progressive, mozjpeg'd, flying pug

a still fly 84K of -qualtiy 50, progressive, mozjpeg pug

More info

mozjpeg-stream wraps the most excellent mozjpeg module by the imagemin crew, which in turn wraps mozjpeg from the most excellent Mozilla. So it's good stuff all the way down.


A (╯°□°)╯︵TABLEFLIP side project.