The jpegtran utility as a readable/writable stream


The jpegtran command line utility as a readable/writable stream.

If you don't have a jpegtran binary in your PATH, node-jpegtran will try to use one of the binaries provided by the node-jpegtran-bin package.

The constructor optionally takes an array of command line options for the jpegtran binary:

var JpegTran = require('jpegtran'),
    myJpegTranslator = new JpegTran(['-rotate', 90, '-progressive']);

JpegTran as a web service (sends back a horizontally flipped grayscale version of the request body):

var JpegTran = require('jpegtran'),
    http = require('http');
http.createServer(function (reqres) {
    if (req.headers['content-type'] === 'image/jpeg') {
        res.writeHead(200, {'Content-Type': 'image/jpeg'});
        req.pipe(new JpegTran(['-grayscale', '-flip', 'horizontal'])).pipe(res);
    } else {
        res.end('Feed me a JPEG!');

Make sure you have node.js and npm installed, then run:

npm install jpegtran

3-clause BSD license -- see the LICENSE file for details.