Skip to content

Instantly share code, notes, and snippets.

@JonathanMH
Forked from spion/gist:3740438
Created September 18, 2012 10:40

Revisions

  1. JonathanMH revised this gist Sep 18, 2012. 1 changed file with 44 additions and 14 deletions.
    58 changes: 44 additions & 14 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -1,14 +1,44 @@
    var parallelResizes = 5;
    async.mapSeries(files, function (item, cb) {
    im.identify(source_dir + file, cb);
    }, function (err, identifies) {
    var queue = async.queue(function (options, callback) {
    im.resize(options, callback);
    }, parallelResizes);
    identifiers.forEach(function (id) {
    /* create options objects for every identifier-size pair and push each like this: */ queue.push(optionsSize1, optionsSize2,...);
    });
    queue.drain = function () {
    console.log("resizing complete");
    }
    });
    var fs = require('fs');
    var im = require('imagemagick');
    var async = require('async');

    var widths = ['270', '590', '910', '1230'];
    var source_dir = process.cwd()+'/source/';
    var output_dir = process.cwd()+'/output/';

    fs.readdir(source_dir, function(err, files){
    if (err) throw err;
    console.log(files);

    var parallelResizes = 1;
    async.mapSeries(files, function (file, cb) {
    im.identify(source_dir + file, cb);
    },

    function (err, identifiers) {
    var queue = async.queue(function (options, callback) {
    im.resize(options, callback);
    }, parallelResizes);
    identifiers.forEach(function (id, file) {
    filename = files[file].split('.');
    for(i = 0; i < widths.length; i++){
    aspect = id.width / id.height;
    width = widths[i];
    height = Math.round(widths[i] / aspect);
    current = {
    srcPath: source_dir + files[file],
    width: width,
    height: height,
    dstPath: output_dir + filename[0] + '_w' + width + '_h' + height + '.' + filename[1],
    quality: 1,
    progressive: true
    };
    queue.push(current);
    }
    });
    queue.drain = function () {
    console.log("resizing complete");
    }
    });
    });

  2. @spion spion created this gist Sep 17, 2012.
    14 changes: 14 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    var parallelResizes = 5;
    async.mapSeries(files, function (item, cb) {
    im.identify(source_dir + file, cb);
    }, function (err, identifies) {
    var queue = async.queue(function (options, callback) {
    im.resize(options, callback);
    }, parallelResizes);
    identifiers.forEach(function (id) {
    /* create options objects for every identifier-size pair and push each like this: */ queue.push(optionsSize1, optionsSize2,...);
    });
    queue.drain = function () {
    console.log("resizing complete");
    }
    });