mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 18:40:16 +02:00
Support identity transform when both width and height are not specified
This commit is contained in:
parent
f99e42d447
commit
d0e6a4c0f3
4
index.js
4
index.js
@ -42,10 +42,6 @@ module.exports.resize = function(input, output, width, height, options, callback
|
|||||||
callback("Invalid height " + height);
|
callback("Invalid height " + height);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (outWidth < 1 && outHeight < 1) {
|
|
||||||
callback("Width and/or height required");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var canvas = options.canvas || "c";
|
var canvas = options.canvas || "c";
|
||||||
if (canvas.length !== 1 || "cwb".indexOf(canvas) === -1) {
|
if (canvas.length !== 1 || "cwb".indexOf(canvas) === -1) {
|
||||||
callback("Invalid canvas " + canvas);
|
callback("Invalid canvas " + canvas);
|
||||||
|
@ -132,9 +132,10 @@ void resize_async(uv_work_t *work) {
|
|||||||
factor = yfactor;
|
factor = yfactor;
|
||||||
baton->width = floor(in->Xsize * factor);
|
baton->width = floor(in->Xsize * factor);
|
||||||
} else {
|
} else {
|
||||||
resize_error(baton, in);
|
// Identity transform
|
||||||
(baton->err).append("Width and/or height required");
|
factor = 1;
|
||||||
return;
|
baton->width = in->Xsize;
|
||||||
|
baton->height = in->Ysize;
|
||||||
}
|
}
|
||||||
|
|
||||||
factor = std::max(factor, 1.0);
|
factor = std::max(factor, 1.0);
|
||||||
|
@ -1,34 +1,54 @@
|
|||||||
var sharp = require("../index");
|
var sharp = require("../index");
|
||||||
var imagemagick = require("imagemagick");
|
var imagemagick = require("imagemagick");
|
||||||
var assert = require("assert");
|
var assert = require("assert");
|
||||||
|
var async = require("async");
|
||||||
|
|
||||||
var inputJpg = __dirname + "/2569067123_aca715a2ee_o.jpg"; // http://www.flickr.com/photos/grizdave/2569067123/
|
var inputJpg = __dirname + "/2569067123_aca715a2ee_o.jpg"; // http://www.flickr.com/photos/grizdave/2569067123/
|
||||||
var outputJpg = __dirname + "/output.jpg";
|
var outputJpg = __dirname + "/output.jpg";
|
||||||
|
|
||||||
sharp.resize(inputJpg, outputJpg, 320, 240, function(err) {
|
async.series([
|
||||||
if (err) throw err;
|
function(done) {
|
||||||
imagemagick.identify(outputJpg, function(err, features) {
|
sharp.resize(inputJpg, outputJpg, 320, 240, function(err) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert.strictEqual(320, features.width);
|
imagemagick.identify(outputJpg, function(err, features) {
|
||||||
assert.strictEqual(240, features.height);
|
if (err) throw err;
|
||||||
|
assert.strictEqual(320, features.width);
|
||||||
|
assert.strictEqual(240, features.height);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function(done) {
|
||||||
sharp.resize(inputJpg, outputJpg, 320, -1, function(err) {
|
sharp.resize(inputJpg, outputJpg, 320, -1, function(err) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
imagemagick.identify(outputJpg, function(err, features) {
|
imagemagick.identify(outputJpg, function(err, features) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert.strictEqual(320, features.width);
|
assert.strictEqual(320, features.width);
|
||||||
assert.strictEqual(262, features.height);
|
assert.strictEqual(262, features.height);
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
sharp.resize(inputJpg, outputJpg, -1, 320, function(err) {
|
|
||||||
if (err) throw err;
|
|
||||||
imagemagick.identify(outputJpg, function(err, features) {
|
|
||||||
if (err) throw err;
|
|
||||||
assert.strictEqual(392, features.width);
|
|
||||||
assert.strictEqual(320, features.height);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
},
|
||||||
});
|
function(done) {
|
||||||
|
sharp.resize(inputJpg, outputJpg, -1, 320, function(err) {
|
||||||
|
if (err) throw err;
|
||||||
|
imagemagick.identify(outputJpg, function(err, features) {
|
||||||
|
if (err) throw err;
|
||||||
|
assert.strictEqual(392, features.width);
|
||||||
|
assert.strictEqual(320, features.height);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function(done) {
|
||||||
|
sharp.resize(inputJpg, outputJpg, -1, -1, function(err) {
|
||||||
|
if (err) throw err;
|
||||||
|
imagemagick.identify(outputJpg, function(err, features) {
|
||||||
|
if (err) throw err;
|
||||||
|
assert.strictEqual(2725, features.width);
|
||||||
|
assert.strictEqual(2225, features.height);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user