node-sprite-generator
Version:
Generates image sprites and their spritesheets (css, stylus, sass, scss or less) from sets of images. Supports retina sprites. Provides express middleware and grunt task.
28 lines (22 loc) • 997 B
JavaScript
;
var _ = require('underscore'),
defaultOptions = require('./utils/defaultOptions'),
scaleImages = require('./utils/scaleImages');
function sumUp(sum, value) {
return sum + value;
}
module.exports = function generateLayout(images, options, callback) {
options = _.extend({}, defaultOptions, options);
images = scaleImages(images, options);
images = _(images).map(function (image, it) {
return _.extend({
x: it === 0 ? 0 : _(images).chain().pluck('width').first(it).reduce(sumUp).value() + options.padding * it,
y: it === 0 ? 0 : _(images).chain().pluck('height').first(it).reduce(sumUp).value() + options.padding * it
}, image);
});
callback(null, {
width: _(images).chain().pluck('width').reduce(sumUp).value() + options.padding * (images.length - 1),
height: _(images).chain().pluck('height').reduce(sumUp).value() + options.padding * (images.length - 1),
images: images
});
};