mirror of
https://github.com/lovell/sharp.git
synced 2025-12-19 07:15:08 +01:00
Update tests to meet semistandard code standards
Switch to const/let instead of var
This commit is contained in:
@@ -2,43 +2,43 @@
|
||||
|
||||
process.env.UV_THREADPOOL_SIZE = 64;
|
||||
|
||||
var assert = require('assert');
|
||||
var async = require('async');
|
||||
const assert = require('assert');
|
||||
const async = require('async');
|
||||
|
||||
var sharp = require('../../index');
|
||||
var fixtures = require('../fixtures');
|
||||
const sharp = require('../../index');
|
||||
const fixtures = require('../fixtures');
|
||||
|
||||
var width = 720;
|
||||
var height = 480;
|
||||
const width = 720;
|
||||
const height = 480;
|
||||
|
||||
sharp.concurrency(1);
|
||||
sharp.simd(true);
|
||||
|
||||
var timer = setInterval(function() {
|
||||
const timer = setInterval(function () {
|
||||
console.dir(sharp.counters());
|
||||
}, 100);
|
||||
|
||||
async.mapSeries([1, 1, 2, 4, 8, 16, 32, 64], function(parallelism, next) {
|
||||
var start = new Date().getTime();
|
||||
async.mapSeries([1, 1, 2, 4, 8, 16, 32, 64], function (parallelism, next) {
|
||||
const start = new Date().getTime();
|
||||
async.times(parallelism,
|
||||
function(id, callback) {
|
||||
/*jslint unused: false */
|
||||
sharp(fixtures.inputJpg).resize(width, height).toBuffer(function(err, buffer) {
|
||||
function (id, callback) {
|
||||
/* jslint unused: false */
|
||||
sharp(fixtures.inputJpg).resize(width, height).toBuffer(function (err, buffer) {
|
||||
buffer = null;
|
||||
callback(err, new Date().getTime() - start);
|
||||
});
|
||||
},
|
||||
function(err, ids) {
|
||||
function (err, ids) {
|
||||
assert(!err);
|
||||
assert(ids.length === parallelism);
|
||||
var mean = ids.reduce(function(a, b) {
|
||||
const mean = ids.reduce(function (a, b) {
|
||||
return a + b;
|
||||
}) / ids.length;
|
||||
console.log(parallelism + ' parallel calls: fastest=' + ids[0] + 'ms slowest=' + ids[ids.length - 1] + 'ms mean=' + mean + 'ms');
|
||||
next();
|
||||
}
|
||||
);
|
||||
}, function() {
|
||||
}, function () {
|
||||
clearInterval(timer);
|
||||
console.dir(sharp.counters());
|
||||
});
|
||||
|
||||
@@ -1,34 +1,33 @@
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs');
|
||||
const fs = require('fs');
|
||||
|
||||
var async = require('async');
|
||||
var assert = require('assert');
|
||||
var Benchmark = require('benchmark');
|
||||
var semver = require('semver');
|
||||
const async = require('async');
|
||||
const assert = require('assert');
|
||||
const Benchmark = require('benchmark');
|
||||
|
||||
// Contenders
|
||||
var gm = require('gm');
|
||||
var imagemagick = require('imagemagick');
|
||||
var jimp = require('jimp');
|
||||
var sharp = require('../../');
|
||||
var imagemagickNative;
|
||||
const gm = require('gm');
|
||||
const imagemagick = require('imagemagick');
|
||||
const jimp = require('jimp');
|
||||
const sharp = require('../../');
|
||||
let imagemagickNative;
|
||||
try {
|
||||
imagemagickNative = require('imagemagick-native');
|
||||
} catch (err) {
|
||||
console.log('Excluding imagemagick-native');
|
||||
}
|
||||
var lwip;
|
||||
let lwip;
|
||||
try {
|
||||
lwip = require('lwip');
|
||||
} catch (err) {
|
||||
console.log('Excluding lwip');
|
||||
}
|
||||
|
||||
var fixtures = require('../fixtures');
|
||||
const fixtures = require('../fixtures');
|
||||
|
||||
var width = 720;
|
||||
var height = 480;
|
||||
const width = 720;
|
||||
const height = 480;
|
||||
|
||||
// Disable libvips cache to ensure tests are as fair as they can be
|
||||
sharp.cache(false);
|
||||
@@ -36,18 +35,18 @@ sharp.cache(false);
|
||||
sharp.simd(true);
|
||||
|
||||
async.series({
|
||||
'jpeg': function(callback) {
|
||||
var inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||
var jpegSuite = new Benchmark.Suite('jpeg');
|
||||
'jpeg': function (callback) {
|
||||
const inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||
const jpegSuite = new Benchmark.Suite('jpeg');
|
||||
// jimp
|
||||
jpegSuite.add('jimp-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
new jimp(inputJpgBuffer, function(err) {
|
||||
fn: function (deferred) {
|
||||
jimp.read(inputJpgBuffer, function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
this
|
||||
image
|
||||
.resize(width, height)
|
||||
.quality(80)
|
||||
.getBuffer(jimp.MIME_JPEG, function (err) {
|
||||
@@ -62,12 +61,12 @@ async.series({
|
||||
}
|
||||
}).add('jimp-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
new jimp(fixtures.inputJpg, function(err) {
|
||||
fn: function (deferred) {
|
||||
jimp.read(fixtures.inputJpg, function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
this
|
||||
image
|
||||
.resize(width, height)
|
||||
.quality(80)
|
||||
.write(fixtures.outputJpg, function (err) {
|
||||
@@ -85,7 +84,7 @@ async.series({
|
||||
if (typeof lwip !== 'undefined') {
|
||||
jpegSuite.add('lwip-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
lwip.open(fixtures.inputJpg, function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
@@ -105,7 +104,7 @@ async.series({
|
||||
}
|
||||
}).add('lwip-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
lwip.open(inputJpgBuffer, 'jpg', function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
@@ -129,7 +128,7 @@ async.series({
|
||||
// imagemagick
|
||||
jpegSuite.add('imagemagick-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
imagemagick.resize({
|
||||
srcPath: fixtures.inputJpg,
|
||||
dstPath: fixtures.outputJpg,
|
||||
@@ -138,7 +137,7 @@ async.series({
|
||||
height: height,
|
||||
format: 'jpg',
|
||||
filter: 'Lanczos'
|
||||
}, function(err) {
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -151,7 +150,7 @@ async.series({
|
||||
if (typeof imagemagickNative !== 'undefined') {
|
||||
jpegSuite.add('imagemagick-native-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
imagemagickNative.convert({
|
||||
srcData: inputJpgBuffer,
|
||||
quality: 80,
|
||||
@@ -173,7 +172,7 @@ async.series({
|
||||
// gm
|
||||
jpegSuite.add('gm-buffer-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.filter('Lanczos')
|
||||
@@ -188,7 +187,7 @@ async.series({
|
||||
}
|
||||
}).add('gm-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.filter('Lanczos')
|
||||
@@ -204,7 +203,7 @@ async.series({
|
||||
}
|
||||
}).add('gm-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(fixtures.inputJpg)
|
||||
.resize(width, height)
|
||||
.filter('Lanczos')
|
||||
@@ -219,7 +218,7 @@ async.series({
|
||||
}
|
||||
}).add('gm-file-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(fixtures.inputJpg)
|
||||
.resize(width, height)
|
||||
.filter('Lanczos')
|
||||
@@ -237,10 +236,10 @@ async.series({
|
||||
// sharp
|
||||
jpegSuite.add('sharp-buffer-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.toFile(fixtures.outputJpg, function(err) {
|
||||
.toFile(fixtures.outputJpg, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -250,10 +249,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -264,10 +263,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputJpg)
|
||||
.resize(width, height)
|
||||
.toFile(fixtures.outputJpg, function(err) {
|
||||
.toFile(fixtures.outputJpg, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -277,22 +276,22 @@ async.series({
|
||||
}
|
||||
}).add('sharp-stream-stream', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
var readable = fs.createReadStream(fixtures.inputJpg);
|
||||
var writable = fs.createWriteStream(fixtures.outputJpg);
|
||||
writable.on('finish', function() {
|
||||
fn: function (deferred) {
|
||||
const readable = fs.createReadStream(fixtures.inputJpg);
|
||||
const writable = fs.createWriteStream(fixtures.outputJpg);
|
||||
writable.on('finish', function () {
|
||||
deferred.resolve();
|
||||
});
|
||||
var pipeline = sharp()
|
||||
const pipeline = sharp()
|
||||
.resize(width, height);
|
||||
readable.pipe(pipeline).pipe(writable);
|
||||
}
|
||||
}).add('sharp-file-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputJpg)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -303,32 +302,32 @@ async.series({
|
||||
}
|
||||
}).add('sharp-promise', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.toBuffer()
|
||||
.then(function(buffer) {
|
||||
.then(function (buffer) {
|
||||
assert.notStrictEqual(null, buffer);
|
||||
deferred.resolve();
|
||||
});
|
||||
}
|
||||
}).on('cycle', function(event) {
|
||||
}).on('cycle', function (event) {
|
||||
console.log('jpeg ' + String(event.target));
|
||||
}).on('complete', function() {
|
||||
}).on('complete', function () {
|
||||
callback(null, this.filter('fastest').map('name'));
|
||||
}).run();
|
||||
},
|
||||
// Effect of applying operations
|
||||
operations: function(callback) {
|
||||
var inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||
var operationsSuite = new Benchmark.Suite('operations');
|
||||
operations: function (callback) {
|
||||
const inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||
const operationsSuite = new Benchmark.Suite('operations');
|
||||
operationsSuite.add('sharp-sharpen-mild', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.sharpen()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -339,11 +338,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-sharpen-radius', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.sharpen(3, 1, 3)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -354,11 +353,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-blur-mild', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.blur()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -369,11 +368,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-blur-radius', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.blur(3)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -384,11 +383,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-gamma', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.gamma()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -399,11 +398,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-normalise', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.normalise()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -414,11 +413,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-greyscale', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.greyscale()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -429,12 +428,12 @@ async.series({
|
||||
}
|
||||
}).add('sharp-greyscale-gamma', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.gamma()
|
||||
.greyscale()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -445,11 +444,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-progressive', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.progressive()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -460,11 +459,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-without-chroma-subsampling', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.withoutChromaSubsampling()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -475,11 +474,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-rotate', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.rotate(90)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -490,11 +489,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-without-simd', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp.simd(false);
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
sharp.simd(true);
|
||||
if (err) {
|
||||
throw err;
|
||||
@@ -506,11 +505,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-sequentialRead', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.sequentialRead()
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -521,11 +520,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-crop-entropy', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.crop(sharp.strategy.entropy)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -536,11 +535,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-crop-attention', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height)
|
||||
.crop(sharp.strategy.attention)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -549,21 +548,21 @@ async.series({
|
||||
}
|
||||
});
|
||||
}
|
||||
}).on('cycle', function(event) {
|
||||
}).on('cycle', function (event) {
|
||||
console.log('operations ' + String(event.target));
|
||||
}).on('complete', function() {
|
||||
}).on('complete', function () {
|
||||
callback(null, this.filter('fastest').map('name'));
|
||||
}).run();
|
||||
},
|
||||
// Comparitive speed of kernels
|
||||
kernels: function(callback) {
|
||||
var inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||
kernels: function (callback) {
|
||||
const inputJpgBuffer = fs.readFileSync(fixtures.inputJpg);
|
||||
(new Benchmark.Suite('kernels')).add('sharp-cubic', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height, { kernel: 'cubic' })
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -574,10 +573,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-lanczos2', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height, { kernel: 'lanczos2' })
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -588,10 +587,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-lanczos3', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputJpgBuffer)
|
||||
.resize(width, height, { kernel: 'lanczos3' })
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -600,25 +599,25 @@ async.series({
|
||||
}
|
||||
});
|
||||
}
|
||||
}).on('cycle', function(event) {
|
||||
}).on('cycle', function (event) {
|
||||
console.log('kernels ' + String(event.target));
|
||||
}).on('complete', function() {
|
||||
}).on('complete', function () {
|
||||
callback(null, this.filter('fastest').map('name'));
|
||||
}).run();
|
||||
},
|
||||
// PNG
|
||||
png: function(callback) {
|
||||
var inputPngBuffer = fs.readFileSync(fixtures.inputPng);
|
||||
var pngSuite = new Benchmark.Suite('png');
|
||||
png: function (callback) {
|
||||
const inputPngBuffer = fs.readFileSync(fixtures.inputPng);
|
||||
const pngSuite = new Benchmark.Suite('png');
|
||||
// jimp
|
||||
pngSuite.add('jimp-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
new jimp(inputPngBuffer, function(err) {
|
||||
fn: function (deferred) {
|
||||
jimp.read(inputPngBuffer, function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
this
|
||||
image
|
||||
.resize(width, height)
|
||||
.getBuffer(jimp.MIME_PNG, function (err) {
|
||||
if (err) {
|
||||
@@ -632,12 +631,12 @@ async.series({
|
||||
}
|
||||
}).add('jimp-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
new jimp(fixtures.inputPng, function(err) {
|
||||
fn: function (deferred) {
|
||||
jimp.read(fixtures.inputPng, function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
this
|
||||
image
|
||||
.resize(width, height)
|
||||
.write(fixtures.outputPng, function (err) {
|
||||
if (err) {
|
||||
@@ -654,7 +653,7 @@ async.series({
|
||||
if (typeof lwip !== 'undefined') {
|
||||
pngSuite.add('lwip-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
lwip.open(inputPngBuffer, 'png', function (err, image) {
|
||||
if (err) {
|
||||
throw err;
|
||||
@@ -678,14 +677,14 @@ async.series({
|
||||
// imagemagick
|
||||
pngSuite.add('imagemagick-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
imagemagick.resize({
|
||||
srcPath: fixtures.inputPng,
|
||||
dstPath: fixtures.outputPng,
|
||||
width: width,
|
||||
height: height,
|
||||
filter: 'Lanczos'
|
||||
}, function(err) {
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -698,7 +697,7 @@ async.series({
|
||||
if (typeof imagemagickNative !== 'undefined') {
|
||||
pngSuite.add('imagemagick-native-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
imagemagickNative.convert({
|
||||
srcData: inputPngBuffer,
|
||||
width: width,
|
||||
@@ -713,7 +712,7 @@ async.series({
|
||||
// gm
|
||||
pngSuite.add('gm-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(fixtures.inputPng)
|
||||
.resize(width, height)
|
||||
.filter('Lanczos')
|
||||
@@ -727,7 +726,7 @@ async.series({
|
||||
}
|
||||
}).add('gm-file-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(fixtures.inputPng)
|
||||
.resize(width, height)
|
||||
.filter('Lanczos')
|
||||
@@ -744,10 +743,10 @@ async.series({
|
||||
// sharp
|
||||
pngSuite.add('sharp-buffer-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputPngBuffer)
|
||||
.resize(width, height)
|
||||
.toFile(fixtures.outputPng, function(err) {
|
||||
.toFile(fixtures.outputPng, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -757,10 +756,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputPngBuffer)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -771,10 +770,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputPng)
|
||||
.resize(width, height)
|
||||
.toFile(fixtures.outputPng, function(err) {
|
||||
.toFile(fixtures.outputPng, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -784,10 +783,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-file-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputPng)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -798,11 +797,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-progressive', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputPngBuffer)
|
||||
.resize(width, height)
|
||||
.progressive()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -813,11 +812,11 @@ async.series({
|
||||
}
|
||||
}).add('sharp-withoutAdaptiveFiltering', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputPngBuffer)
|
||||
.resize(width, height)
|
||||
.withoutAdaptiveFiltering()
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -827,21 +826,21 @@ async.series({
|
||||
});
|
||||
}
|
||||
});
|
||||
pngSuite.on('cycle', function(event) {
|
||||
pngSuite.on('cycle', function (event) {
|
||||
console.log(' png ' + String(event.target));
|
||||
}).on('complete', function() {
|
||||
}).on('complete', function () {
|
||||
callback(null, this.filter('fastest').map('name'));
|
||||
}).run();
|
||||
},
|
||||
// WebP
|
||||
webp: function(callback) {
|
||||
var inputWebPBuffer = fs.readFileSync(fixtures.inputWebP);
|
||||
webp: function (callback) {
|
||||
const inputWebPBuffer = fs.readFileSync(fixtures.inputWebP);
|
||||
(new Benchmark.Suite('webp')).add('sharp-buffer-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputWebPBuffer)
|
||||
.resize(width, height)
|
||||
.toFile(fixtures.outputWebP, function(err) {
|
||||
.toFile(fixtures.outputWebP, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -851,10 +850,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-buffer-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(inputWebPBuffer)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -865,10 +864,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-file-file', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputWebP)
|
||||
.resize(width, height)
|
||||
.toFile(fixtures.outputWebP, function(err) {
|
||||
.toFile(fixtures.outputWebP, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -878,10 +877,10 @@ async.series({
|
||||
}
|
||||
}).add('sharp-file-buffer', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputWebp)
|
||||
.resize(width, height)
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -890,15 +889,15 @@ async.series({
|
||||
}
|
||||
});
|
||||
}
|
||||
}).on('cycle', function(event) {
|
||||
}).on('cycle', function (event) {
|
||||
console.log('webp ' + String(event.target));
|
||||
}).on('complete', function() {
|
||||
}).on('complete', function () {
|
||||
callback(null, this.filter('fastest').map('name'));
|
||||
}).run();
|
||||
}
|
||||
}, function(err, results) {
|
||||
}, function (err, results) {
|
||||
assert(!err, err);
|
||||
Object.keys(results).forEach(function(format) {
|
||||
Object.keys(results).forEach(function (format) {
|
||||
if (results[format].toString().substr(0, 5) !== 'sharp') {
|
||||
console.log('sharp was slower than ' + results[format] + ' for ' + format);
|
||||
}
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
'use strict';
|
||||
|
||||
var imagemagick = require('imagemagick');
|
||||
var gm = require('gm');
|
||||
var assert = require('assert');
|
||||
var Benchmark = require('benchmark');
|
||||
const imagemagick = require('imagemagick');
|
||||
const gm = require('gm');
|
||||
const assert = require('assert');
|
||||
const Benchmark = require('benchmark');
|
||||
|
||||
var sharp = require('../../index');
|
||||
var fixtures = require('../fixtures');
|
||||
const sharp = require('../../index');
|
||||
const fixtures = require('../fixtures');
|
||||
|
||||
sharp.cache(false);
|
||||
sharp.simd(true);
|
||||
|
||||
var min = 320;
|
||||
var max = 960;
|
||||
const min = 320;
|
||||
const max = 960;
|
||||
|
||||
var randomDimension = function() {
|
||||
const randomDimension = function () {
|
||||
return Math.ceil(Math.random() * (max - min) + min);
|
||||
};
|
||||
|
||||
new Benchmark.Suite('random').add('imagemagick', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
imagemagick.resize({
|
||||
srcPath: fixtures.inputJpg,
|
||||
dstPath: fixtures.outputJpg,
|
||||
@@ -29,7 +29,7 @@ new Benchmark.Suite('random').add('imagemagick', {
|
||||
height: randomDimension(),
|
||||
format: 'jpg',
|
||||
filter: 'Lanczos'
|
||||
}, function(err) {
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -39,7 +39,7 @@ new Benchmark.Suite('random').add('imagemagick', {
|
||||
}
|
||||
}).add('gm', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
gm(fixtures.inputJpg)
|
||||
.resize(randomDimension(), randomDimension())
|
||||
.filter('Lanczos')
|
||||
@@ -55,10 +55,10 @@ new Benchmark.Suite('random').add('imagemagick', {
|
||||
}
|
||||
}).add('sharp', {
|
||||
defer: true,
|
||||
fn: function(deferred) {
|
||||
fn: function (deferred) {
|
||||
sharp(fixtures.inputJpg)
|
||||
.resize(randomDimension(), randomDimension())
|
||||
.toBuffer(function(err, buffer) {
|
||||
.toBuffer(function (err, buffer) {
|
||||
if (err) {
|
||||
throw err;
|
||||
} else {
|
||||
@@ -67,9 +67,9 @@ new Benchmark.Suite('random').add('imagemagick', {
|
||||
}
|
||||
});
|
||||
}
|
||||
}).on('cycle', function(event) {
|
||||
}).on('cycle', function (event) {
|
||||
console.log(String(event.target));
|
||||
}).on('complete', function() {
|
||||
var winner = this.filter('fastest').map('name');
|
||||
}).on('complete', function () {
|
||||
const winner = this.filter('fastest').map('name');
|
||||
assert.strictEqual('sharp', String(winner), 'sharp was slower than ' + winner);
|
||||
}).run();
|
||||
|
||||
Reference in New Issue
Block a user