【问题标题】:GraphicsMagick getting "Stream yields empty buffer error" on Elastic BeanstalkGraphicsMagick 在 Elastic Beanstalk 上获得“流产生空缓冲区错误”
【发布时间】:2016-01-20 03:55:23
【问题描述】:

我正在使用 GM 做非常简单的事情:画一个圆圈并将其放入缓冲区。但是在我将代码签入 Elastic Beanstalk 后,我收到“流产生空缓冲区错误”错误。我不知道为什么,因为它完全可以在 localhost 上运行。

代码如下:

gm(200, 200, '#FF0000')
        .setFormat('png')
        .fill('#00FF00')
        .drawCircle( 50, 50, 60, 60 )
        .toBuffer(function( error, buffer )
        {
            if( error ) { res.send("error:"+error+" with content length:"+data.ContentLength);}
            res.writeHead(200, {'Content-Type': 'image/png' });
               res.end(buffer, 'binary');
        }

非常感谢!

更新 我在本地和 EC2 上运行:gm convert -list format,发现 EC2 缺少对它的 PNG 和 JPEG 支持。想知道如何添加支持。有什么线索吗?

【问题讨论】:

  • 黑色背景上的黑色圆圈永远不会有多大意义——尤其是当您将其编码为 PNG 并告诉浏览器有 GIF 即将到来时 ;-)
  • :-) 感谢您指出。响应代码是从实际生产代码中复制而来的。但它给出了同样的错误。所以我使用了一个简单的 gm 初始化来查看问题所在。但这不应该导致缓冲区错误,对吧?
  • 只是为了好玩,您可以尝试将背景设置为“#FF0000”之类的内容,并将填充设置为#00FF00吗?
  • 已编辑!现在颜色不是黑底黑了

标签: node.js imagemagick amazon-elastic-beanstalk graphicsmagick


【解决方案1】:

发现问题。运行 gm version 命令。发现不支持PNG和JPEG。所以原来是一个依赖问题。重新安装并解决它。

【讨论】:

  • @Rougher 您打开一个 Terminal 窗口(在 Mac 上)并在命令行中输入 gm version。它将显示包含版本以及支持的文件类型的输出。您可能需要在窗口中向上滚动才能看到此信息。
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 2021-09-27
  • 2016-05-27
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2011-03-21
相关资源
最近更新 更多