gpt4 book ai didi

node.js - Node 的 Graphicsmagick 不写整个 jpg

转载 作者:搜寻专家 更新时间:2023-10-31 23:28:41 24 4
gpt4 key购买 nike

我正在使用 https://github.com/aheckmann/gm调整图像大小。

var fs = require('fs');
var gm = require('gm');

var input = __dirname + '/input.jpg';
var output = __dirname + '/output.jpg';

gm(input)
.resize(350)
.stream( function(err, stdout, stderr) {

var writeStream = fs.createWriteStream( output, { encoding: 'base64' } );

var i = '';

stdout.on( 'data', function(data){

i += data.toString('base64');

});

stdout.on('end', function(){

writeStream.write( new Buffer(i, 'base64') );
writeStream.end();

});

} );

问题是它没有写入整个图像。

half camel

最佳答案

我已经使用 https://github.com/coolaj86/node-bufferjs 解决了这个问题连接方法。

var fs = require('fs');
var gm = require('gm');

var input = __dirname + '/input.jpg';
var output = __dirname + '/output.jpg';

require('bufferjs');

gm(input)
.resize(800)
.stream( function(err, stdout, stderr) {

ws = fs.createWriteStream( output );

i = [];

stdout.on( 'data', function(data){

console.log('data');

i.push( data );


});

stdout.on( 'close', function(){

console.log( 'close' );

var image = Buffer.concat( i );
ws.write( image.toString('base64'), 'base64' );
ws.end();

});

} );

显然,当您连接缓冲区时,您需要跟踪缓冲区的长度/索引。您可以通过查看 bufferjs 的 concat 方法的源代码找到更多信息:https://github.com/coolaj86/node-bufferjs/blob/master/bufferjs/concat.js

关于node.js - Node 的 Graphicsmagick 不写整个 jpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com