mirror of https://gitgud.io/fatchan/gm
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
50 lines
1.1 KiB
var assert = require('assert')
|
|
var fs = require('fs')
|
|
|
|
module.exports = function (_, dir, finish, gm) {
|
|
|
|
var original = dir + '/original.jpg';
|
|
var result = dir + '/resizeFromBuffer.png';
|
|
|
|
var buf = fs.readFileSync(original);
|
|
|
|
var m = gm(buf, 'resizefrombuffer.jpg')
|
|
.resize('48%')
|
|
|
|
var args = m.args();
|
|
assert.equal('convert', args[0]);
|
|
assert.equal('-', args[1]);
|
|
assert.equal('-resize', args[2]);
|
|
if (m._options.imageMagick) {
|
|
assert.equal('48%', args[3]);
|
|
} else {
|
|
assert.equal('48%x', args[3]);
|
|
}
|
|
|
|
if (!gm.integration)
|
|
return finish();
|
|
|
|
size(original, function (err, origSize) {
|
|
if (err) return finish(err);
|
|
|
|
m
|
|
.write(result, function resizeFromBuffer (err) {
|
|
if (err) return finish(err);
|
|
|
|
size(result, function (err, newSize) {
|
|
if (err) return finish(err);
|
|
assert.ok(origSize.width / 2 >= newSize.width);
|
|
assert.ok(origSize.height / 2 >= newSize.height);
|
|
finish();
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
function size (file, cb) {
|
|
gm(file).identify(function (err, data) {
|
|
if (err) return cb(err);
|
|
cb(err, data.size);
|
|
});
|
|
}
|
|
}
|
|
|