我正在尝试创建一个新图像,该图像最终将通过gridfs插入到mongo数据库中。我希望避免向文件系统写入任何内容,因此最好的方法似乎是创建一个新映像,将结果写入缓冲区,然后将缓冲区插入数据库。不幸的是,toBuffer方法不适用于新图像:
var gm = require( 'gm' );
gm(200, 200, '#000F')
.setFormat('png')
.fill('black')
.drawCircle( 50, 50, 60, 60 )
.toBuffer( 'PNG', function( error, buffer )
{
if( error ) { console.log( error ); return; }
console.log( 'success: ' + buffer.length );
}
);
...产生以下错误:
[错误:流产生空缓冲区]
看起来gm根本不喜欢'PNG'
您要提供的参数toBuffer
。我也不认为这是必要的,因为您早先已将格式指定为png。尝试简单地将其删除:
var gm = require( 'gm' );
gm(200, 200, '#000F')
.setFormat('png')
.fill('black')
.drawCircle( 50, 50, 60, 60 )
.toBuffer(function( error, buffer )
{
if( error ) { console.log( error ); return; }
console.log( 'success: ' + buffer.length );
}
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句