Code Monkey home page Code Monkey logo

mozjpeg-stream's Introduction

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.

mozjpeg-stream's People

Contributors

olizilla avatar alanshaw avatar nekodex avatar rmehner avatar pepkin88 avatar

Stargazers

 avatar  avatar Martin avatar yama-dev avatar Michael Scott Hertzberg avatar Kieran Williams avatar Sylvain Dumont avatar Björn Söderqvist avatar  avatar Angus H. avatar Chris Watson avatar julien brunet avatar Dhi Aurrahman avatar Gilson Filho avatar Boris Bügling avatar Andrew Nesbitt avatar

Watchers

 avatar Nelson avatar Peter Bowey avatar James Cloos avatar Liam Wooding avatar Bernard Mordan avatar  avatar

mozjpeg-stream's Issues

Command failed: Unrecognized input file format --- perhaps you need -targa

req.busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {

    gm(file, dirname + '/' + filename)
                        .resize(200, 200)
                        .stream('png')
                        .on('error', function (err) {
                            sails.log.error("error in input stream ", err);
                            return res.negotiate(err);
                        }).on('end', function (end) {
                                ApiService.standardJsonResponse(err, menus && menus[0], req, res);
                            });
                        })
                        .pipe(mozjpeg({ quality: jpgQuality }))
                        .pipe(fs.createWriteStream(saveTo));
            }

        });
.....

Fires error:

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: Command failed: Unrecognized input file format --- perhaps you need -targa

  at ChildProcess.onExit (****\node_modules\duplex-child-process\index.js:116:12)
  at ChildProcess.g (events.js:260:16)
  at emitTwo (events.js:87:13)
  at ChildProcess.emit (events.js:172:7)
  at maybeClose (internal/child_process.js:818:16)
  at Socket.<anonymous> (internal/child_process.js:319:11)
  at emitOne (events.js:77:13)
  at Socket.emit (events.js:169:7)
  at Pipe._onclose (net.js:469:12)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.