【问题标题】:How do I create a new image with [node] graphicsmagick using toBuffer如何使用 [node] graphicsmagick 使用 toBuffer 创建新图像
【发布时间】:2015-05-20 22:20:06
【问题描述】:

我正在尝试创建一个新图像,该图像最终将通过 gridfs 插入到 mongo 数据库中。我宁愿避免向文件系统写入任何内容,因此最佳路线似乎是create a new image,将结果写入缓冲区,然后将缓冲区插入数据库。不幸的是,toBuffer method 不适用于新图像:

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 );
    }
);

... 产生以下错误:

[错误:流产生空缓冲区]

【问题讨论】:

    标签: node.js graphicsmagick


    【解决方案1】:

    看起来 gm 根本不喜欢您提供给 toBuffer'PNG' 参数。我认为也没有必要,因为您之前已经将格式指定为 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 );
        }
    );
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多