0

GM https://github.com/aheckmann/gmで画像をパイプする変換ストリームを設定しようとしています。だから私は次のようなことができます:

readStream.pipe(resize()).pipe(writeStream);

これを達成するために、gm と一緒に through2 を使用しました。機能しますが、画像の半分しか解析せず、大部分が灰色のままになります。

'use strict';

var fs = require('fs')
  , gm = require('gm').subClass({imageMagick: true})
  , through2 = require('through2');



let readStream = fs.createReadStream('landscape.jpg');
let writeStream = fs.createWriteStream('landscape-out.jpg');


let resize = function(width, height) {

	return through2(function(chunk, enc, callback){
		gm(chunk)
			.resize(800)
			.gravity('Center')
			.crop(800, 500, 0, 0)
			.stream((err, stdout, stderr) => {
				
				stdout.on('data', chunk => {
					this.push(chunk);
				});

				stdout.on('end', () => {
					callback();
				});

		});
	});

} 



readStream.pipe(resize()).pipe(writeStream);

ここに画像の説明を入力

4

1 に答える 1