以下代码抛出错误。
错误:命令失败:gm转换:几何不包含图像
(无法裁剪图像)。
var gm = require('gm');
gm('/origin.jpg')
.resize(600)
.write('/beforeCrop', function (err) {
// beforeCrop is 600 * 450
gm('/beforeCrop')
.crop(70, 70, 100, 100)
.resize(50, 50)
.write('/result', function (err) {
if (err) throw err;
});
});
看来gm无法解析beforeCrop的大小。
最佳答案
为什么不通过管道传输到流中并即时读取?
var gm = require('gm');
gm('/origin.jpg')
.resize(600)
.stream(function (err,stdout,stderr) {
// beforeCrop is 600 * 450
gm(stdout) // gm can read buffers ;)
.crop(70, 70, 100, 100)
.resize(50, 50)
.write('/result', function (err) {
if (err) throw err;
});
});
我还考虑在裁剪后将管道输送到另一个流,如下所示:
var gm = require('gm');
gm('/origin.jpg')
.resize(600)
.stream(function (err,stdout,stderr) {
// beforeCrop is 600 * 450
gm(stdout) // gm can read buffers ;)
.crop(70, 70, 100, 100).stream(function (err,stdout,stderr) {
gm(stdout).resize(50, 50)
.write('/result', function (err) {
if (err) throw err;
});
});
});
当在同一条链上同时执行时,我遇到了一些问题。
关于node.js - Node gm-使用裁切和调整大小导致错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12455559/