Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
.then(function (format) {
switch (format) {
case 'JPEG':
var jpegtran = require('jpegtran-bin').path;
return Q.nfcall(execFile, jpegtran, ['-copy', 'none', '-optimize', '-outfile', dst, src]);
case 'PNG':
var optipng = require('optipng-bin').path;
return Q.nfcall(execFile, optipng, ['-quiet', '-force', '-strip', 'all', '-out', dst, src]);
case 'GIF':
var gifsicle = require('gifsicle').path;
return Q.nfcall(execFile, gifsicle, ['--careful', '-w', '-o', dst, src]);
}
// unsupported format!?
// simply convert it without profile data!
return convert(src, dst);
});
}
.then(function() {
if (compression === "none") {
return Q.resolve();
} else if (compression === "optipng") {
return Q.nfcall(execFile, require("optipng-bin").path, [cachedImagePath]);
} else if (compression === "pngquant") {
return Q.nfcall(execFile, require("pngquant-bin"), ["-o", cachedImagePath, cachedImagePath, "-f"]);
} else {
throw new Error("Compression '" + compression + "' is not supported");
}
});
};
'use strict';
var execFile = require('child_process').execFile;
var fs = require('fs');
var imageType = require('image-type');
var optipng = require('optipng-bin').path;
var tempfile = require('tempfile');
var rm = require('rimraf');
/**
* optipng image-min plugin
*
* @param {Object} opts
* @api public
*/
module.exports = function (opts) {
opts = opts || {};
return function (file, imagemin, cb) {
if (imageType(file.contents) !== 'png') {
return cb();
Imagemin.prototype._optimizePng = function () {
var args = ['-strip', 'all', '-quiet'];
var optipng = require('optipng-bin').stream;
var pngquant;
if (typeof this.optimizationLevel === 'number') {
args.push('-o', this.optimizationLevel);
}
if (this.opts.pngquant) {
pngquant = require('pngquant-bin').path;
return spawn(optipng, args).stdout.pipe(spawn(pngquant, ['-']));
}
return spawn(optipng, args);
};