Skip to content

🚿 The awesome JPEG minifying power of mozjpeg wrapped up as a `.pipe` friendly stream.

License

Notifications You must be signed in to change notification settings

tableflip/mozjpeg-stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

🚿 The awesome JPEG minifying power of mozjpeg wrapped up as a `.pipe` friendly stream.

Resources

License

Stars

Watchers

Forks

Packages

No packages published