本文介绍了节点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 的大小。
Is seem that gm can not resolve the size of beforeCrop.
推荐答案
为什么不通过管道传输到流中并即时读取?
Why not piping to a stream and reading from it on the fly?
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;
});
});
在裁剪后,我还考虑将管道输送到另一个流:
I'd also consider piping to another stream after cropping like so:
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;
});
});
});
在同一条链上同时进行时,我遇到了一些问题。
I had some problems when doing both on the same chain.
这篇关于节点gm-使用裁切和调整大小导致错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!