getRealDimensions: function(img, mime) { var src; switch (mime) { case 'image/jpeg': src = gd.createFromJpeg(img); break; case 'image/gif': src = gd.createFromGif(img); break; case 'image/png': src = gd.createFromPng(img); break; } return { w: src.width, h: src.height }; },
resizePng: function(opts, cb) { var src = gd.createFromPng(opts.processPath), w = (opts.w) ? opts.w : false, h = (opts.h) ? opts.h : false, dims = this.parseDimensions(w, h, src.width, src.height), self = this; var target = gd.createTrueColor(dims.w, dims.h); src.copyResampled(target, 0, 0, 0, 0, dims.w, dims.h, src.width, src.height); target.savePng(opts.uploadPath, opts.quality, function (err) { if (err) return self.removeImage(opts.processPath, 'Could not save processed image: ' + opts.uploadPath, cb); return cb(null, { name: opts.imageName, path: opts.uploadPath, url: opts.url, mime: opts.mime }); }); },
items.forEach(function(i, c) { if( i.fit ){ var fit = i.fit; i.sprite = opts.spritePath + spriteName; png = gd.createFromPng(target.stylesDir + '/' + i.data.image); png.copy(sprite, fit.x, fit.y, 0, 0, png.width, png.height); target.images[i.data.image] = i; _addImage(i); }else{ var errorMsg = 'Image "' + i.data.image + '" does not fit into sprite.' + 'You will probably need to increase sprite size.'; cb({msg: errorMsg}); } });
Picsee.prototype.cropPng = function(image, opts, orig, cb) { var self = this, src = gd.createFromPng(image), target = gd.createTrueColor(opts.w, opts.h); target.alphaBlending(0); target.saveAlpha(1); var transparent = src.colorAllocateAlpha(0,0,0,127); target.colorTransparent(transparent); src.copyResampled(target, 0, 0, opts.x1, opts.y1, opts.w, opts.h, opts.w, opts.h); target.savePng(image, self._pngQlty, function (err) { if (err) return cb(err, null); var opts = { image: { name: path.basename(image) || null }, orig: orig || null, processPath: image || null, ext: utils.getFileExt(image) || null }; self.process(opts, cb); }); };