Cleanup thumbnail generation

pull/9/head
rprieto 10 years ago
parent e938aa811a
commit aa055e2baf

@ -12,8 +12,8 @@ exports.build = function(opts) {
console.log('Building galleries...\n')
opts.size = opts.size || 100;
fs.mkdirp(opts.output);
thumbs.size = opts.size || 100;
photos(opts);
videos(opts);
@ -27,13 +27,10 @@ function photos(opts) {
var thumbsFolder = path.join(path.resolve(opts.output), 'thumbs');
glob('**/*.{jpg,png}', {cwd: opts.input, nonull:false}, function (er, files) {
var fns = files.map(function(file) {
return function(next) {
thumbs.photo({
input: path.join(opts.input, file),
thumbnail: path.join(thumbsFolder, file),
size: opts.size
}, next);
};
return thumbs.photo.bind(this, {
input: path.join(opts.input, file),
thumbnail: path.join(thumbsFolder, file)
});
});
async.parallel(fns, log('Photos'));
});
@ -43,14 +40,11 @@ function videos(opts) {
var thumbsFolder = path.join(path.resolve(opts.output), 'thumbs');
glob('**/*.{mp4,mov}', {cwd: opts.input, nonull:false}, function (er, files) {
var fns = files.map(function(file) {
return function(next) {
thumbs.video({
input: path.join(opts.input, file),
thumbnail: path.join(thumbsFolder, ext(file, '.jpg')),
poster: path.join(thumbsFolder, ext(file, '_poster.jpg')),
size: opts.size
}, next);
};
return thumbs.video.bind(this, {
input: path.join(opts.input, file),
thumbnail: path.join(thumbsFolder, ext(file, '.jpg')),
poster: path.join(thumbsFolder, ext(file, '_poster.jpg'))
});
});
async.parallel(fns, log('Videos'));
});

@ -5,20 +5,23 @@ var mkdirp = require('mkdirp');
var gm = require('gm');
/* opts = input, thumbnail, size */
// default thumbnail size (square)
exports.size = 100;
// opts = input, thumbnail
exports.photo = function(opts, callback) {
mkdirp(path.dirname(opts.thumbnail));
gm(path.resolve(opts.input))
.resize(opts.size, opts.size, "^")
.resize(exports.size, exports.size, "^")
.gravity('Center')
.crop(opts.size, opts.size)
.crop(exports.size, exports.size)
.write(path.resolve(opts.thumbnail), callback);
};
/* opts = input, thumbnail, poster, size */
// opts = input, thumbnail, poster
exports.video = function(opts, callback) {
var fnVideo = function(next) {
@ -29,8 +32,7 @@ exports.video = function(opts, callback) {
var fnPhoto = function(next) {
exports.photo({
input: opts.poster,
thumbnail: opts.thumbnail,
size: opts.size
thumbnail: opts.thumbnail
}, next);
};

Loading…
Cancel
Save